![](/img/trans.png)
[英]mapvalues in plyr gives unexpected output when “to” argument is a factor…is it a bug?
[英]Plyr mapvalues to rename levels giving unexpected result
我正在尝试使用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)<-mapvalues(z$x, c("a", "c","b"), c("A", "C","m"))
>z
x y
1 A A
2 m C
3 C C
4 C d
5 C d
6 A C
可以看出, $x[5]
应该为“ d”, $y[6]
应该为“ m”。 我也尝试将“ as.character”应用于“ from”“ to”向量,但是它也不起作用。 我正在使用RStudio,Mac版本,R版本3.5.2(2018-12-20)-“ Eggshell Igloo”。 感谢帮助。
如果我们看一下输出
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”相同的向量,而levels
长度不同
如果我们将此输出分配给levels(z$y
)`,则存在长度差异。 我们可以对整个列进行分配
z$y <- plyr::mapvalues(z$y, c("a", "c","b"), c("A", "C","m"))
或改变levels
与相应的levels
levels(z$y) <- levels(plyr::mapvalues(z$y, c("a", "c","b"), c("A", "C","m")))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.