R *对因子ERROR没有意义

时间:2015-05-29 08:55:14

标签: r factors

我有以下data.frame,我想在第二列上执行一些计算。

> 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   

为什么会这样?有什么建议?

2 个答案:

答案 0 :(得分:18)

new[,2]是一个因素,而不是数字向量。先转换它

new$MY_NEW_COLUMN <-as.numeric(as.character(new[,2])) * 5

答案 1 :(得分:-1)

您需要一个名为robustfa的程序包及其依赖项。这对我有用。