通过调用列名称将列名称提取为vector

时间:2015-06-05 10:15:51

标签: r dataframe

我们在这里有一个public static DateTime GetDate(string stringFormat) { var date = stringFormat.Split(' ')[0].Split('.').Select(x => Int32.Parse(x)).ToArray(); return new DateTime(date[2], date[1], date[0]); }

data.frame

我知道我可以使用

轻松查看列名
df <- data.frame(x1=rnorm(20),x2=rnorm(20),x3=rnorm(20),x4=rnorm(20),x5=rnorm(20),x6=rnorm(20),x7=rnorm(20),x8=rnorm(20),x9=rnorm(20),x10=rnorm(20),x11=rnorm(20),x12=rnorm(20),x13=c(2,1,1,2,2,1,2,1,2,2,1,1,2,1,2,2,1,2,1,1))

打印上面的行。

我还可以使用colnames(df) [1] "x1" "x2" "x3" "x4" "x5" "x6" "x7" "x8" "x9" "x10" "x11" "x12" "x13" 获取单个列的名称,例如

colnames(df[...])

我似乎无法通过使用列的名称调用colnames(df[2]) [1] "x2" 来弄清楚如何提取单个列名称,例如

colnames()

我敢打赌解决方案非常简单,但我没有找到有关此问题的任何有用信息。

1 个答案:

答案 0 :(得分:3)

单括号仅使用一列生成数据框的子集。因此,新数据框具有其唯一列的名称。

> class(df[2])
[1] "data.frame"
> colnames(df[2])
[1] "x2"

双括号[[或美元$提取单个列的内容,在您的情况下是数字。因此它没有任何列名,因为它不是数据框。

> class(df$x2)
[1] "numeric"

如果您只想要第二列的名称

> colnames(df)[2]
[1] "x2"