2015-10-07 29 views
0

我想改变data.frame中的单个值,即使用此代码df[307, 1] <- 231即NA。但是,我得到的警告信息如何更改data.frame中的单个值(值是一个新的级别)?

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

我的理解正确,水平231不变量([,1]第一列)的水平内。我能做些什么来解决这个问题?添加新级别231?或者另一种方式来改变这个单一的价值。感谢您的想法。

+2

列是'factor'类。将其更改为“字符”或在现有因子列中添加级别,然后进行替换 – akrun

回答

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" 
相关问题