我想使用dplyr :: mutate连续修改列中的各个项目。我可以通过多次使用mutate来完成它,如下所示。
require(dplyr)
df <- data.frame( a = c(1,2,3,4,5)) %>%
mutate( . , a = ifelse( a == 1, 'one', a) ) %>%
mutate( . , a = ifelse( b == 2, 'two', a) )
这给出了我期望的结果。
但是,我想知道为什么不能用这个做同样的事情,没有修改2到&#39; 2&#39;:
df2 <- data.frame( a = c(1,2,3,4,5)) %>%
mutate( . ,
a = ifelse( a == 1, 'one', a),
a = ifelse( a == 2, 'two', a)
)
我似乎并不完全理解mutate是如何工作的,只是想要更好地理解它。感谢。
答案 0 :(得分:1)
实际上我认为它与plyr的mutate相混淆,plyr也被加载了。如果我指定dplyr :: mutate,它可以工作。
df2 <- data.frame( a = c(1,2,3,4,5)) %>%
dplyr::mutate( . ,
a = ifelse( a == 1, 'one', a),
a = ifelse( a == 2, 'two', a)
)