首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当列超过R中的阈值时删除重复行

当列超过R中的阈值时删除重复行
EN

Stack Overflow用户
提问于 2021-03-16 15:28:54
回答 3查看 159关注 0票数 4

大家好,我需要帮助,只有当列高于阈值时,才能从df中删除重复的行。

下面是一个数据文件:

代码语言:javascript
复制
  Group       Species Values
1    G1 Cattus_cattus     10
2    G1 Cattus_cattus     10
3    G1 Cattus_cattus     10
4    G2   Canis_lupus      2
5    G2   Canis_lupus      2
6    G3  Griseus_lupa     90
7    G4  Griseus_lupa     89

我想删除重复的c(Group,Species),当Values>5在这里时,我应该得到:

代码语言:javascript
复制
  Group       Species Values
1    G1 Cattus_cattus     10
4    G2   Canis_lupus      2
5    G2   Canis_lupus      2
6    G3  Griseus_lupa     90
7    G4  Griseus_lupa     89

数据

代码语言:javascript
复制
structure(list(Group = structure(c(1L, 1L, 1L, 2L, 2L, 3L, 4L
), .Label = c("G1", "G2", "G3", "G4"), class = "factor"), Species = structure(c(2L, 
2L, 2L, 1L, 1L, 3L, 3L), .Label = c("Canis_lupus", "Cattus_cattus", 
"Griseus_lupa"), class = "factor"), Values = c(10L, 10L, 10L, 
2L, 2L, 90L, 89L)), class = "data.frame", row.names = c(NA, -7L
))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-16 18:01:13

使用dplyr

代码语言:javascript
复制
library(dplyr)
x %>%
    filter(!duplicated(x)| Values <=5)
票数 2
EN

Stack Overflow用户

发布于 2021-03-16 15:32:43

您可以使用duplicated并将其与x$Values < 5的或|测试相结合。

代码语言:javascript
复制
x[!duplicated(x) | x$Values <= 5,]
#x[!(duplicated(x) & x$Values > 5),] #Alternative
#  Group       Species Values
#1    G1 Cattus_cattus     10
#4    G2   Canis_lupus      2
#5    G2   Canis_lupus      2
#6    G3  Griseus_lupa     90
#7    G4  Griseus_lupa     89

或者只适用于群体和物种

代码语言:javascript
复制
x[!(duplicated(x[c("Group","Species")]) & x$Values > 5),]
票数 3
EN

Stack Overflow用户

发布于 2021-03-16 18:44:26

代码语言:javascript
复制
library(dplyr)
 df %>%
   group_by(Group, Species) %>% 
   slice(if(any(Values > 5)) 1 else 1:n())

# output:
# Groups:   Group, Species [4]
  Group Species       Values
  <fct> <fct>          <int>
1 G1    Cattus_cattus     10
2 G2    Canis_lupus        2
3 G2    Canis_lupus        2
4 G3    Griseus_lupa      90
5 G4    Griseus_lupa      89
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66658319

复制
相关文章

相似问题

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