R * 对因子 ERROR 没有意义
R * not meaningful for factors ERROR
我有以下 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
如您所见,第 2 列不仅仅包含数字。我省略了这些情况:
> 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
为什么会这样?有什么建议么?
new[,2]
是一个因子,而不是一个数值向量。先改造一下
new$MY_NEW_COLUMN <-as.numeric(as.character(new[,2])) * 5
我有以下 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
如您所见,第 2 列不仅仅包含数字。我省略了这些情况:
> 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
为什么会这样?有什么建议么?
new[,2]
是一个因子,而不是一个数值向量。先改造一下
new$MY_NEW_COLUMN <-as.numeric(as.character(new[,2])) * 5