R:对模式名称为“var1, var2 .... varN”的变量进行一次测试

问题描述

我经常需要手动计算类似的东西:

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))