【发布时间】:2019-04-07 16:18:27
【问题描述】:
我正在尝试遍历数据框的每一列并将“未知”值转换为 NA。我尝试了以下代码:
for (i in seq(length(df))) {
for (j in seq(nrow(df))) {
ifelse(df[,i][j] == "unknown", NA, df[,i][j])
}
}
然而,它并没有改变任何值。我要更改的列是因素,所以我也尝试了:
for (i in seq(length(df))) {
x <- class(df[,i])
as.character(df[,i])
for (j in seq(nrow(df))) {
ifelse(df[,i][j] == "unknown", NA, df[,i][j])
}
class(df[,i]) <- x
}
无济于事。没有获得错误,代码似乎运行没有问题;只有值保持为“未知”。
【问题讨论】:
-
您可以在将数据读取到 R 时处理此问题;请检查
read.table中的na.strings参数。 -
ifelse not 与 if 和 else 相同。
标签: r for-loop if-statement na class-factory