我想使用此代码df[307, 1] <- 231
更改data.frame中的单个值,即NA。但是,我收到了警告信息
warning message:
In `[<-.factor`(`*tmp*`, iseq, value = 231) :
invalid factor level, NA generated
据我所知,级别231
不在变量([,1]
第一列)的级别内。我该怎么做才能解决这个问题?添加新关卡231
?或者另一种改变这个单一价值的方法。谢谢你的想法。
答案 0 :(得分:2)
正如@akrun在评论中指出的那样:
x <- factor(c("a", "b"))
x[3] <- "c"
Warning message:
In `[<-.factor`(`*tmp*`, 3, value = "c") :
invalid factor level, NA generated
# one solution:
x <- factor(c("a", "b"))
x <- factor(c(as.character(x), "c"))
# a second solution:
x <- factor(c("a", "b"))
levels(x) <- c("a", "b", "c")
x[3] <- "c"