【问题标题】:successive row-wise modification of a column using mutate from dplyr使用 dplyr 中的 mutate 对列进行连续的逐行修改
【发布时间】:2015-05-17 21:32:06
【问题描述】:

我想使用 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 修改为“二”:

df2 <- data.frame( a = c(1,2,3,4,5)) %>%
    mutate( . , 
    a = ifelse( a == 1, 'one', a),
    a = ifelse( a == 2, 'two', a)
 )

似乎我并不完全了解 mutate 的工作原理,只是想更好地了解它。谢谢。

【问题讨论】:

  • 它对我有用。你用的是哪个版本?

标签: r dplyr


【解决方案1】:

实际上,我认为它与 plyr 的 mutate 混淆了,它也已加载。如果我指定 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)
     )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 2015-04-29
    • 2015-05-02
    • 1970-01-01
    • 2020-04-04
    • 2015-05-12
    • 2015-09-20
    相关资源
    最近更新 更多