问题描述
我经常需要手动计算类似的东西:
some_test(dt$some_var,dt$another_var1)
some_test(dt$some_var,dt$another_var2)
...
some_test(dt$some_var,dt$another_varN)
如果变量之间仅以数字结尾,R 是否可以自动执行此操作? 非常感谢!
解决方法
也许你可以像下面这样尝试mapply(some_test,list(dt$some_var),dt[startsWith(names(dt),"another_var")])
{{1}},
通常,您可以创建一个列名称向量,将函数应用于并使用 lapply
。
cols <- grep('another_var\\d+',names(dt),value = TRUE)
result <- lapply(dt[cols],function(x) some_test(dt$some_var,x))