给定数据框
df <- data.frame(a = sample(c(1,0), 30, replace = TRUE),
b = sample(c(2,3), 30, replace = TRUE),
c = sample(c(4,5), 30, replace = TRUE))
以及lazy()
包中的lazyeval
参数捕获的表达式
library(lazyeval)
toeval <- lazy(c(a,b))
我希望得到一个包含这两个变量a和b而不是一个连接向量的数据框,如
所示result <- lazy_eval(toeval, df)
一个不起眼的版本立即出现在脑海中
df_result <- data.frame(a = result[1:(nrow(df))],
b = result[(nrow(df)+1):(nrow(df)*2)])
非常感谢更好的创意!
答案 0 :(得分:3)
您可以尝试:
toeval <- lazy(list(a,b))
data.frame(do.call(cbind, lazy_eval(toeval, df)))