R:更改 data.frame returns 无效因子级别警告的单个值

R: change single value of data.frame returns invalid factor level warning

我的问题是 this and this 个问题的组合。

我有一个数据框:

df <- data.frame("ID" = c(1,2,3,4),
                 "char" = c("a","b","c","d"))

我想更改单个值,例如

df[1,1] <- 10

正在运行。当我尝试这个时

df[2,2] <- "f"

df$char[1] <- "f"

df$char[1] <- as.character("f")

我收到以下警告:

"Warning message:
In `[<-.factor`(`*tmp*`, 2, value = c(1L, NA, 3L, 4L)) :
  invalid factor level, NA generated"

如何更改 "char" 栏中的内容?

我们可以先包含levels然后再赋值

df$char <- factor(df$char, levels = c(levels(df$char), "f"))
df[2,2] <- "f"