用数字替换数据集中的缺失值?

时间:2013-10-04 13:23:25

标签: r missing-data

我已使用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.numericas.characteras.factor的各种组合,但没有一个能够绕过此错误消息。

我被告知这样做的方法是将Low元素转换为缺失值但是当我这样做并尝试用数字替换NA时,我仍然得到相同的错误消息!

1 个答案:

答案 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"