使用来自dplyr的mutate对列进行连续的逐行修改

时间:2015-05-17 21:32:07

标签: r dplyr

我想使用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是如何工作的,只是想要更好地理解它。感谢。

1 个答案:

答案 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)
     )