首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列具有唯一值的数字。

列具有唯一值的数字。
EN

Stack Overflow用户
提问于 2020-09-30 22:45:46
回答 1查看 190关注 0票数 2

我在R演播室里有一个类似于的tibble,我需要添加一个列,给每个名字指定相同的唯一编号。所以它应该看起来像

我已经尝试了如下代码:

代码语言:javascript
复制
people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, along.with = unique(Name))) >%>
ungroup()

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

我还尝试了以下代码:

代码语言:javascript
复制
people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, length(unique(Name)))) >%>
ungroup()

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

对格式表示抱歉,这是我第一次在这里提出问题,我需要学习如何更好地编写

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-30 22:48:28

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

代码语言:javascript
复制
library(dplyr)
df1 %>%
   group_by(Name = factor(Name, levels = unique(Name))) %>%
   mutate(NameID = cur_group_id())

或者不使用group_by,它可以是一个match

代码语言:javascript
复制
df1 %>%
   mutate(NameID = match(Name, unique(Name)))

或者强迫factorinteger

代码语言:javascript
复制
df1 %>%
    mutate(NameID = as.integer(factor(Name, levels = unique(Name))))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64146764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档