如何更改 data.frame 中的单个值(值是一个新级别)?

How to change single value in a data.frame (value being a new level)?

我想更改 data.frame 中的单个值,使用此代码 df[307, 1] <- 231 是 NA。但是,我收到警告消息

warning message:
In `[<-.factor`(`*tmp*`, iseq, value = 231) :
invalid factor level, NA generated

正如我理解的那样,级别 231 不在变量的级别内([,1] 第一列)。我该怎么做才能解决这个问题?添加新级别 231?或者另一种方法来改变这个单一的价值。谢谢你的想法。

正如@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"