【发布时间】:2018-08-13 09:32:22
【问题描述】:
我有两个数据框。原文df1,
Country Ccode Year Happiness Power
1 France FR 2000 1872 1213
2 France FR 2001 2345 1234
3 UK UK 2000 2234 1726
4 UK UK 2001 9082 6433
和df1vars,它只包含几个列名的向量:
1 Country
2 Year
3 Happiness
我想从df1 中的df1vars 的列中进行选择。当我违背自己更好的判断尝试执行以下操作时:
library(dplyr)
df2 <- select(df1, df1vars)
获取输出:
Country Year Happiness
1 France 2000 1872
2 France 2001 2345
3 UK 2000 2234
4 UK 2001 9082
我收到了消息:
Error: ``ES1varselect`` must evaluate to column positions or names, not a list
对于 select 语句的这方面是否有有效的解决方法?
【问题讨论】:
-
df1vars是向量还是数据框? -
嗯,它是一个数据框,但只有一列。
-
那你需要指定列名。尝试
select(df1, df1vars$V1)假设V1是列名。 -
然后我得到错误:
Error:ES1varselect$ES1varselect` 必须计算为列位置或名称,而不是整数向量` -
@TomKisters
df1vars$V1是factor,需要转换成字符。select(df1, as.character(df1vars$V1))