首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用r有条件地处理到其他列的重复项

使用r有条件地处理到其他列的重复项
EN

Stack Overflow用户
提问于 2021-10-21 08:07:26
回答 1查看 39关注 0票数 0

我有一个很大的数据库,我想有条件地处理到另一列的重复项(不删除任何项)。下面是我的输入示例:

代码语言:javascript
复制
 name                              nb_participants
 INSTITUT BILA BILA                    10
 INSTITUT BILA BILA                    4
 INSTITUT BILA BILA                    NA
 INSTITUT NZUNDU                       3
 INSTITUT NZUNDU                       15
...
代码语言:javascript
复制
structure(list(name = c("INSTITUT BILA BILA", "INSTITUT BILA BILA", "INSTITUT BILA BILA","INSTITUT NZUNDU","INSTITUT NZUNDU"), nb_participants = c(10, 4, NA,3,15)), row.names = c("1", "2","3","4","5"), class = "data.frame")

所需的输出如下:

代码语言:javascript
复制
 name                            nb_participants
 INSTITUT BILA BILA 2-1              10
 INSTITUT BILA BILA 2-2               4
 INSTITUT BILA BILA 2-3              NA
 INSTITUT NZUNDU 2-2                  3
 INSTITUT NZUNDU 2-1                 15
...
代码语言:javascript
复制
structure(list(name = c("INSTITUT BILA BILA 2-1", "INSTITUT BILA BILA 2-2", "INSTITUT BILA BILA 2-3","INSTITUT NZUNDU 2-2","INSTITUT NZUNDU 2-1"), nb_participants = c(10, 4, NA,3,15)), row.names = c("1", "2","3","4","5"), class = "data.frame")

我有这个命令

代码语言:javascript
复制
data$name<-ave(as.character(data$name), data$name, FUN=function(x) if (length(x)>1) paste0(x[1], '-', seq_along(x), '') else x[1])

但我不知道如何处理对另一列的有条件排名。现在我能做的唯一一件事是:

代码语言:javascript
复制
data<-data %>% 
  group_by(name) %>% 
  filter(nb_participants ==max(nb_participants))

你有什么办法能帮上忙吗?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2021-10-21 08:32:28

这可能会帮助您解决问题(语法请使用tidyverse包)。首先,如果您希望按nb_participant变量降序对数据进行排序,请执行以下操作:

代码语言:javascript
复制
df <- df %>% arrange(name, desc(nb_participants))

然后,您必须按名称创建迭代次数:

代码语言:javascript
复制
df <- df %>% group_by(name) %>% mutate(id = row_number())

id列将计算每次出现name变量的次数。

如果您想要将这个数字添加到名称变量中,如示例所示,您可以简单地执行以下操作:

代码语言:javascript
复制
df$name <- paste(df$name, " 2- ", df$id, sep="")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69658177

复制
相关文章

相似问题

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