【发布时间】:2019-12-25 18:03:40
【问题描述】:
我有一个数据框:
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”列中的内容?
【问题讨论】:
-
最简单的方法是使用
df <- data.frame(ID = c(1,2,3,4), char = c("a","b","c","d"), stringsAsFactors = FALSE),然后一切正常。 -
@RonakShah 如果他们有权创建这样的数据框,则可以使用,但这很可能不是他们的真实生活情况
-
@camille 你是对的。我正在为已经创建的数据框寻找一个简单的解决方案..