从R中的数据帧中动态提取元素

时间:2015-03-24 01:19:25

标签: r dataframe

我有一个数据框,我想调用具有特定值的特定列。

像这样:

the.dataframe$gender[the.dataframe$gender=="male"]

或者这个:

male <- subset(the.dataframe, gender == 1, select = gender)

我无法做到的是让它可以动态更改性别变量,因为$不能使用对象:

x <- "gender"
male <- subset(the.dataframe, x == 1, select = x)

我想我在某个地方看到了答案,但我无法重新安置它:/

---- ---- EDIT

我终于找到了我认为最好的解决方案。 来自 thelatemail 的评论帮助了我,但当我只想要相关列时,解决方案会返回整个数据框。 我知道[[]]命令,但不确定它是如何工作的。 经过几次测试后我才做到了:

x <- gender
the.dataframe[[x]][the.dataframe[[x]]=="male"]

来自Michele Usuelli的解决方案只返回正确的列,因为我的问题是从列中返回特定的案例。 Roth Das的答案非常有效,但我发现设置有点令人困惑。

2 个答案:

答案 0 :(得分:1)

你可以使用[[

name_column <- "gender"
the.dataframe[[name_column]]

答案 1 :(得分:0)

如果你想访问其他列,也可以使用上面的Alternale版本。

colname <- "gender"
df[df[,colname] == "male",colname]