我喜欢循环使用gather()
,其中gather()
key
和value
的输入值是一个变量。这可能吗?
我还尝试了gather()
的标准变量(在循环外部设置,没有索引),但是不起作用。
因此,我认为,按照_gather()_的定义,不可能将key
和value
分配给变量。
在键和值上找到的文档中:
“ ...请注意,这种界面中的符号不代表实际对象...”
我认为这就是答案。 但是我不确定。
gather(Fragenummern.FB[i], Fragenummern.FI[i],
key = keyVar[i], value = ValueVar[i])
错误:必须提供符号或字符串作为参数
致电
rlang::last_error()
查看回溯
答案 0 :(得分:0)
我认为您可以使用dplyr::gather
和rlang
命令来实现。在此示例中,您有df
,要在df
中gather
的某些变量名称的向量,以及新收集的变量的名称的向量。
df <- data.frame(matrix(runif(260),ncol = 26))
names(df) <- letters
to_gather <- sample(letters,5)
new_names <- c('letter','value')
df %>% gather(key = !!new_names[1], value = !!new_names[2], enexpr(to_gather))
您可以遍历此循环,并根据要收集的变量的不同子集创建多个新数据框。
lapply(1:2, function(x){
to_gather <- sample(letters,5)
df %>% gather(key = !!new_names[1], value = !!new_names[2], enexpr(to_gather))
})