我已使用read.xlsx
命令将数据电子表格导入到R中,但数据中插入了标记为Low
的元素,因为它们未被正确测量。
因此数据中的示例列如下所示:
[15, 6, Low, 23, 39, Low]
我想用数值替换Low
元素,但是当我尝试像:
data[3,2] <- 4
#.....我收到以下错误消息:
Warning message:
In '[<-.factor '('*tmp*', iseq, value = 4): invalid factor level, NAs generated.
我尝试了as.numeric
,as.character
,as.factor
的各种组合,但没有一个能够绕过此错误消息。
我被告知这样做的方法是将Low
元素转换为缺失值但是当我这样做并尝试用数字替换NA时,我仍然得到相同的错误消息!
答案 0 :(得分:0)
因子是一种仅接受预定义值的变量。因此,如果您有以下因素:
fac <- factor(c("15","6","Low","23","39","Low"))
然后预定义的值集是:
R> levels(fac)
[1] "15" "23" "39" "6" "Low"
如果您想将"4"
归为一个新手,则必须更改因子标签:
R> factor(fac, levels=c("15","23","39","6","Low"), labels=c("15","23","39","6","4"))
[1] 15 6 4 23 39 4
或首先将其转换为角色矢量:
R> v <- as.character(fac)
R> v[v=="Low"] <- "4"
R> v
[1] "15" "6" "4" "23" "39" "4"