【问题标题】:Column with numbers for unique values [duplicate]具有唯一值数字的列[重复]
【发布时间】:2020-09-30 22:45:46
【问题描述】:

我在 R 工作室中有一个类似 this 的小标题,我需要添加一个列,为每个名称提供相同的唯一编号。所以它应该看起来像this

我已经尝试过类似下面的代码:

people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, along.with = unique(Name))) >%>
ungroup()

此代码为所有列提供了相同的编号。所以它给了我每个 NameID 的数字 1。

我也试过下面的代码:

people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, length(unique(Name)))) >%>
ungroup()

我得到了同样的结果。我想我可能需要使用if functionifelse,但我真的不知道正确的语法应该是什么。

对不起格式,我是第一次在这里提问,我需要学习更好地写东西

【问题讨论】:

    标签: r unique dplyr


    【解决方案1】:

    使用dplyr 1.0.0,我们可以使用cur_group_id

    library(dplyr)
    df1 %>%
       group_by(Name = factor(Name, levels = unique(Name))) %>%
       mutate(NameID = cur_group_id())
    

    或者不使用group_by,也可以是match

    df1 %>%
       mutate(NameID = match(Name, unique(Name)))
    

    或将factor 强制转换为integer

    df1 %>%
        mutate(NameID = as.integer(factor(Name, levels = unique(Name))))
    

    【讨论】:

    • 非常感谢家人。我有一种感觉,感谢像你这样的人,我会学到很多东西。有这个空间真是太好了。再次感谢!
    猜你喜欢
    • 2023-01-21
    • 2015-03-02
    • 1970-01-01
    • 2020-11-15
    • 2016-11-07
    • 2017-09-18
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多