2014-10-30 39 views
1

我有一個已經用數字命名的列數據幀:列命名爲數字

> 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])?

回答

3

你可以做

df$`1` 

爲R參數需要與反引號包裹不能處理任何名稱。當然,你也可以只做到

df["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 
+0

您還可以使用引號用'$':'X $ '1' #[1] 2' – 2014-10-30 16:51:57

+0

@BondedDust:是的,但我感覺骯髒,因爲該值應該是一個名稱/符號不是字符串。 – 2014-10-30 16:56:39

+0

嗯,它應該等同於'x [[as.character(1)]]''。 – 2014-10-30 16:59:57