根据条件重命名列中的值

时间:2014-09-01 15:54:54

标签: r replace rename r-factor

当其中一列的值为0时,我想更改数据框列中条目的名称。我试过这种方式,但收到错误消息。假设我想将第1,2,3列的条目更改为" A"当第3列的条目为0

df[ df[ , 3 ] == 0 , c(1,2,4) ] <- "A"

我得到了

Warning message:
In `[<-.factor`(`*tmp*`, iseq, value = c("A", "A", "A",  :
  invalid factor level, NA generated

1 个答案:

答案 0 :(得分:0)

以下命令后应该可以工作:

df[,c(1,2,4)]=sapply(df[,c(1,2,4)], function(x) as.character(x))

可以按照josilber在评论中的建议缩短为以下内容:

df[,c(1,2,4)]=sapply(df[,c(1,2,4)], as.character)