我们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))
Run Code Online (Sandbox Code Playgroud)
我知道我可以轻松地查看列名
colnames(df)
[1] "x1" "x2" "x3" "x4" "x5" "x6" "x7" "x8" "x9" "x10" "x11" "x12" "x13"
Run Code Online (Sandbox Code Playgroud)
打印上面的行。
我还可以得到一列的名称colnames(df[...]),为例
colnames(df[2])
[1] "x2"
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚如何通过colnames()使用列名调用来提取单个列名,例如
colnames(df$x2)
NULL
Run Code Online (Sandbox Code Playgroud)
我敢打赌,解决方案非常简单,但我只是没有找到有关此问题的任何有用信息。
Bac*_*lin 10
单括号生成数据框的子集,只有一列。因此,新数据框的唯一一列有一个名称。
> class(df[2])
[1] "data.frame"
> colnames(df[2])
[1] "x2"
Run Code Online (Sandbox Code Playgroud)
双括号[[或美元$提取单列的内容,在您的情况下是数字。因此它没有任何列名,因为它不是数据框。
> class(df$x2)
[1] "numeric"
Run Code Online (Sandbox Code Playgroud)
如果您只想要第二列的名称,您应该这样做
> colnames(df)[2]
[1] "x2"
Run Code Online (Sandbox Code Playgroud)