首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >查找所有重复行,包括“具有较小下标的元素”

查找所有重复行,包括“具有较小下标的元素”
EN

Stack Overflow用户
提问于 2011-10-22 03:37:45
回答 7查看 48.9K关注 0票数 133

R的duplicated返回一个向量,该向量显示向量或数据帧的每个元素是否与具有较小下标的元素重复。因此如果5行数据帧的行3、4和5相同,duplicated会给我一个向量

代码语言:js
复制
FALSE, FALSE, FALSE, TRUE, TRUE

但在这种情况下,我实际上想要

代码语言:js
复制
FALSE, FALSE, TRUE, TRUE, TRUE

也就是说,我想知道一行是否也被具有较大下标的行复制。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-10-22 03:56:43

duplicated有一个fromLast论点。的“示例”部分?duplicated演示如何使用它。只要打电话就行了duplicated两次,一次使用fromLast=FALSE一次使用fromLast=TRUE取这两行中的任何一行TRUE..。


一些后期编辑:您没有提供可重现的示例,所以这里有一个由@jbaum好心提供的插图

代码语言:javascript
复制
vec <- c("a", "b", "c","c","c") 
vec[duplicated(vec) | duplicated(vec, fromLast=TRUE)]
## [1] "c" "c" "c"

Edit:以数据框为例:

代码语言:javascript
复制
df <- data.frame(rbind(c("a","a"),c("b","b"),c("c","c"),c("c","c")))
df[duplicated(df) | duplicated(df, fromLast=TRUE), ]
##   X1 X2
## 3  c  c
## 4  c  c
票数 158
EN

Stack Overflow用户

发布于 2011-10-22 03:49:00

您需要组装一组duplicated值,应用unique,然后使用%in%..。像往常一样,一个样本问题将使这个过程变得活跃起来。

代码语言:javascript
复制
> vec <- c("a", "b", "c","c","c")
> vec[ duplicated(vec)]
[1] "c" "c"
> unique(vec[ duplicated(vec)])
[1] "c"
>  vec %in% unique(vec[ duplicated(vec)]) 
[1] FALSE FALSE  TRUE  TRUE  TRUE
票数 39
EN

Stack Overflow用户

发布于 2019-06-17 21:47:57

可以使用以下命令获取数据帧中的重复行dplyr通过做

代码语言:javascript
复制
library(tidyverse)
df = bind_rows(iris, head(iris, 20)) # build some test data
df %>% group_by_all() %>% filter(n()>1) %>% ungroup()

要排除某些列,请执行以下操作group_by_at(vars(-var1, -var2))可以用来对数据进行分组。

如果实际需要行索引,而不仅仅是数据,您可以先添加它们,如下所示:

代码语言:js
复制
df %>% add_rownames %>% group_by_at(vars(-rowname)) %>% filter(n()>1) %>% pull(rowname)
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7854433

复制
相关文章

相似问题

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