Plyr映射值以重命名级别,从而产生意外结果
我试图使用mapvalues重命名一个因子的一长串级别。由于它似乎工作不正常,我制作了一个简单的示例来说明这个问题Plyr映射值以重命名级别,从而产生意外结果,r,R,我试图使用mapvalues重命名一个因子的一长串级别。由于它似乎工作不正常,我制作了一个简单的示例来说明这个问题 x <- c("a", "b", "c","c","d","a") y <- c("a", "c", "c","d","d","b") z<-data.frame(cbind(x,y)) levels(z$y)<-mapvalues(z$y, c("a", "c","b"), c("A", "C","m")) levels(z$x)<-mapvalu
x <- c("a", "b", "c","c","d","a")
y <- c("a", "c", "c","d","d","b")
z<-data.frame(cbind(x,y))
levels(z$y)<-mapvalues(z$y, c("a", "c","b"), c("A", "C","m"))
levels(z$x)<-mapvalues(z$x, c("a", "c","b"), c("A", "C","m"))
可以看出,
$x[5]
应该是“d”,而$y[6]
应该是“m”。我还尝试将“as.character”应用于“from”“to”向量,但也不起作用。我在RStudio工作,Mac版本,R版本3.5.2(2018-12-20)-“蛋壳冰屋”。感谢您的帮助。如果我们查看
plyr::mapvalues(z$y, c("a", "c","b"), c("A", "C","m"))
#[1] A C C d d m
#Levels: A m C d
它是一个与“x”长度相同的向量,而级别长度不同
如果我们将此输出分配给级别(z$y
)`,则存在长度差异。我们可以对整列进行赋值
z$y <- plyr::mapvalues(z$y, c("a", "c","b"), c("A", "C","m"))
不要分配到级别
或ELSE您必须分配输出级别的级别
(z$y)谢谢,现在我明白了,应该分配给变量:z$x只想指出,plyr
在一段时间前已经退役,主要是支持dplyr
,以及其他tidyverse软件包
z$y <- plyr::mapvalues(z$y, c("a", "c","b"), c("A", "C","m"))
levels(z$y) <- levels(plyr::mapvalues(z$y, c("a", "c","b"), c("A", "C","m")))