我的数据框已经包含以数字命名的列:
> 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$1
或df$as.character(1)
这样的命令不起作用,但有没有使用索引编号进行子集的方法(所以NO df[,1]
)?
答案 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