当列名存储在R中的字符串中时,如何访问数据框中的列

时间:2018-06-28 20:44:26

标签: r dataframe

我想访问数据框中的一列,并且列名存储在字符串变量中。

我发现这个问题已针对其他语言,对变量的访问而得到了回答,但对于数据帧中的列却没有回答。

例如:

> df <- iris[1:3,]

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa

> x <- "Sepal.Length"

我想使用x访问数据框df的第一列。

我天真地尝试了以下方法,但没有成功:

df$[[x]]
df$[x]
df$get(x)

我想它应该很简单,但是我一直找不到。谢谢

1 个答案:

答案 0 :(得分:1)

从我这里来

df[x]

来自@ {Rui Barradas

df[[x]]。 [MillionC's返回一个子数据帧。这是一个向量。

来自@ {coffeinjunky

正如@MillionC指出的那样,如果您删除$,则前两种方法可以工作。要同时设置列和行,可以使用df[row_ind, col_ind]。与with一样,您的get方法也可以与with(df, get(x))一起使用,尽管我想不出需要使用此构造子集数据帧的示例。