【问题标题】:Count number of unique values for all rows above [duplicate]计算上面所有行的唯一值的数量[重复]
【发布时间】:2019-01-20 10:46:01
【问题描述】:

我的数据框看起来像这样:

USER URL
1    homepage.com
1    homepage.com/welcome
1    homepage.com/overview
1    homepage.com/welcome

我想要的是一个具有以下值的向量:

UNIQUE
1
2
3
3

我该怎么做?

【问题讨论】:

    标签: r unique


    【解决方案1】:

    我们可以使用cumsumduplicated

    df$unique <- cumsum(!duplicated(df$URL))
    df$unique
    #[1] 1 2 3 3
    

    duplicated 为我们提供了一个值是否重复的逻辑向量,我们将其取反 (!),然后在其上使用 cumsum,这样我们就有了唯一值的累积总和。

    【讨论】:

      【解决方案2】:

      使用dplyr 添加新列:

      library(dplyr)
      df %>% 
        mutate(Dups=cumsum(!duplicated(URL)))
      

      【讨论】:

      • 也许吧。我总是留下问题并继续尝试解决它。所以我有时永远不知道是否提供了类似的答案。
      • @akrun 没关系。在发布之前,我会更加小心地查看其他答案。当我看到语法与上面类似时,我实际上首先删除了我的帖子。后来决定取消删除。
      • 我觉得可以展示dplyr的方式创建列
      • 好的,非常感谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多