在R中的Subsetting数据中使用变量名

时间:2017-09-28 13:25:42

标签: r

我有一个数据框,我需要子集。 示例dataFrame -

x           y               z           p         q
US          23              boy         34        45.6
EU          45              girl        27        24.67
US          23              boy         36        75.6
EU          45              girl        26        74.67

我知道可以通过 -

来完成
subset(dataFrame, x == 'US')

现在,我有一个用例,我有一个要在dataFrame上应用的组合列表。 dataFrame包含5列 - x,y,z,p,q 组合作为dataFrame - 1. x = US,y = 23,z = boy 2. x = EU,y = 34,z =女孩

现在,这些组合可以是任意数字,类似地,我们可以拥有更大的数据集。 所以,我试图做的 - 示例数据集 -

x           y               z
US          23              boy
EU          45              girl

combo是我的数据框架组合。

comboNames = names(combo)
subset(dataFrames, comboName[1] == lapply(combo[,1], as.character)[[1]])

这给了我0个结果。 但是,如果我这样做 -

subset(dataFrames, x == lapply(combo[,1], as.character)[[1]])

有效。 是否可以将此键x表示为变量以提取数据。 希望我能够很好地解释我的问题。在此先感谢所有的帮助。

1 个答案:

答案 0 :(得分:0)

comboName仅包含名称(不引用数据框)。所以你从comboName [1]得到的“x”在你的第二种方法中没有像x那样被引用。 这应该有效:

 subset(dataframes, get(comboNames[1]) == lapply(combo[,1], as.character)[[1]])

我希望这就是你要找的......

干杯