如何更改 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"
我想更改 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"