【发布时间】:2013-10-04 21:30:43
【问题描述】:
我已使用 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 时,我仍然收到相同的错误消息!
【问题讨论】:
-
在导入数据之前设置
option(stringsAsFactors=FALSE)。但是,您最终会得到一个字符变量,在进行任何计算之前您需要将其强制转换为数字。此外,将Low值设置为NA(表示未知值)并保持不变。 R 带有处理NA的设施。read.table(和其他数据导入功能)带有一个na.strings参数,允许在导入期间将Low强制转换为NA。 -
Cross posting 没有说明你这样做被认为是粗鲁的。
标签: r missing-data