使用列表或向量作为select语句的输入

时间:2018-08-13 09:32:23

标签: r select vector dplyr

我有两个数据帧。原始的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语句的这方面是否有有效的解决方法?

1 个答案:

答案 0 :(得分:0)

如果两者均为data.frame,那么

df1[,c(df1vars$Colname)]

其中df1是您在问题中提到的data.framedf1vars是其他具有以下内容的data.frame

    Colname
1   Country
2      Year
3 Happiness

最终输出:

  Country Year Ccode
1  France 2000    FR
2  France 2001    FR
3      UK 2000    UK
4      UK 2001    UK