列表:
number name age status
1 ben 34 m
2 max 12 s
3 27 s
4 42 d
我有这个列表,我试图替换" name"中的空白部分。 coulm。
这是我的代码(我所有的尝试):
list$name[3] <- "eric"
list[3,2] <- "eric"
list[3,2] <- 0
list[is.na(list)] <- 0
这是错误:
Warning message:
In `[<-.factor`(`*tmp*`, 3, value = c(2L, 3L, NA, NA, 1L, 1L, 1L, :
invalid factor level, NA generated
Warning message:
In `[<-.factor`(`*tmp*`, thisvar, value = 0) :
invalid factor level, NA generated
你知道这个问题是什么吗?
答案 0 :(得分:0)
name
是一个因子列,您正在尝试添加更多&#34;级别&#34;尚未定义。
您可以将列强制转换为character
列并按照您的尝试进行编辑,也可以将这些级别添加到因子列。
list$name <- as.character(list$name)
list$name[3] <- "eric"
或
list$name <- factor(list$name, levels=c(levels(list$name), "eric"))
list$name[3] <- "eric"
有关详细信息,请参阅this answer。