在r中替换数据帧的各个部分

时间:2016-12-18 13:21:16

标签: r

列表:

number name age status 
1      ben  34  m
2      max  12  s
3           27  s
4           42  d

我有这个列表,我试图替换" name"中的空白部分。 coulm。

这是我的代码(我所有的尝试):

list$name[3] <- "eric"
list[3,2] <- "eric"
list[3,2] <- 0
list[is.na(list)] <- 0

这是错误:

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

Warning message:
In `[<-.factor`(`*tmp*`, thisvar, value = 0) :
  invalid factor level, NA generated

你知道这个问题是什么吗?

1 个答案:

答案 0 :(得分:0)

name是一个因子列,您正在尝试添加更多&#34;级别&#34;尚未定义。

您可以将列强制转换为character列并按照您的尝试进行编辑,也可以将这些级别添加到因子列。

list$name <- as.character(list$name)
list$name[3] <- "eric"

list$name <- factor(list$name, levels=c(levels(list$name), "eric"))
list$name[3] <- "eric"

有关详细信息,请参阅this answer