如何在R中的整个data.frame中替换多个因子

jej*_*uba 2 r

我想用另一个因素(不是级别的一部分)替换data.frame中的各种因素.例如:

au1 <- c('deb', 'art', 'deb', 'seb', 'deb', 'deb', 'mar', 'mar', 'joy', 'deb')
au2 <- c('art', 'deb', 'soy', 'deb', 'joy', 'ani', 'deb', 'deb', 'nem', 'mar')
au3 <- c('mar', 'lio', 'mil', 'mar', 'ani', 'lul', 'nem', 'art', 'deb', 'tat')

tata <- data.frame(au1, au2, au3)
Run Code Online (Sandbox Code Playgroud)

我想用'XXX'改变所有'deb'和'joy'.

找不到办法做到这一点.我很难为整个data.frame添加一个级别,并且在%c('','')中使用%来表示data.frame.

任何的想法?

Did*_*rts 5

您可以使用mapvalues()库中的功能plyr().如你想用多列做这个,那么你也可以使用函数sapply().如果数据框中的所有列都是因子,则此解决方案有效.

library(plyr)
xx<-as.data.frame(sapply(tata,
          mapvalues, from = c("deb", "joy"), to = c("XXX", "XXX")))
Run Code Online (Sandbox Code Playgroud)