列命名为数字

时间:2014-10-30 16:37:50

标签: r subset names

我的数据框已经包含以数字命名的列:

> str(df)
'data.frame':   8305 obs. of  5 variables:
 $ 1 : num  0.652 0.526 0.504 0.628 0.744 ...
 $ 2 : num  0.498 0.476 0.454 0.454 0.498 ...
 $ 3 : num  0.3537 0.0368 0.3421 0.3421 0.3537 ...
 $ 4 : num  0.298 0.031 0.309 0.305 0.313 ...
 $ 5 : num  0.2808 0.0292 0.2781 0.2811 0.2808 ...

我知道df$1df$as.character(1)这样的命令不起作用,但有没有使用索引编号进行子集的方法(所以NO df[,1])?

2 个答案:

答案 0 :(得分:3)

你可以做到

df$`1`

任何不能被视为R变量的名称都需要用反引号包装。当然你也可以这样做

df["1"]

答案 1 :(得分:2)

是的,在[的情况下使用引号,在$的情况下使用反引号。

> x <- data.frame(`2`=1, `1`=2, check.names=FALSE)
> x
  2 1
1 1 2
> x[,"2"]
[1] 1
> x$`2`
[1] 1
> x$`1`
[1] 2
> x[,"1"]
[1] 2