0

我已经使用命令将数据电子表格导入到 R 中,read.xlsx但是数据中散布着一些元素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.characteras.factor

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

4

1 回答 1

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" 
于 2013-10-04T13:30:43.173 回答