2015-05-29 30 views
9

我有以下data.frame,我想在第二列上執行一些計算。R *對因素沒有意義ERROR

> test 
    code age 
1 101 15 
2 102 25 
3 103 16 
4 104 u1 
5 105 u1 
6 106 u2 
7 107 27 
8 108 27 

正如你所看到的,第二列不包括數字。我省略了這些情況:

> new<-subset(test,code<104 | code>106) 
> new 
    code age 
1 101 15 
2 102 25 
3 103 16 
7 107 27 
8 108 27 

但是,當我嘗試做一個計算在新的一列,這是我所得到的:

> new["MY_NEW_COLUMN"] <- NA 
> new 
    code age MY_NEW_COLUMN 
1 101 15   NA 
2 102 25   NA 
3 103 16   NA 
7 107 27   NA 
8 108 27   NA 
> new$MY_NEW_COLUMN <-new[,2] * 5 
Warning message: 
In Ops.factor(new[, 2], 5) : * not meaningful for factors 

爲什麼會發生呢?有什麼建議麼?

回答

12

new[,2]是一個因素,而不是數字向量。首先進行轉換

​​
+0

您應該提醒人們閱讀R-FAQ,其中這些信息以及許多其他信息都會隨R的每個副本一起分發。 –