首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一种同时适用于专辑曲目的两种情况的过滤器

一种同时适用于专辑曲目的两种情况的过滤器
EN

Stack Overflow用户
提问于 2021-06-05 01:06:48
回答 3查看 62关注 0票数 1

我有这个数据集:

代码语言:javascript
复制
dataset_ex <- data.frame(album = c("Brim","Brim","Brum","Brum"),
                         track = c("Tad","Toe","Toe","Ram"),
                         stringsAsFactors = FALSE)

  album track
1  Brim   Tad
2  Brim   Toe
3  Brum   Toe
4  Brum   Ram

一首歌是多余的(因为它出现在两张专辑中)。在这种情况下,歌曲Toe。我想消除对这首歌的一个观察,所以我试着:

代码语言:javascript
复制
dataset_ex %>% filter(track != "Toe" && album != "Brum")

但它会返回所有的观察结果。我的预期结果是:

代码语言:javascript
复制
  album track
1  Brim   Tad
2  Brim   Toe
3  Brum   Ram

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-06-05 02:56:32

当比较向量时,您应该使用单个&|,我认为您要寻找的条件是|这里-

代码语言:javascript
复制
library(dplyr)

dataset_ex %>% filter(track != "Toe" | album != "Brum")

#  album track
#1  Brim   Tad
#2  Brim   Toe
#3  Brum   Ram

保留track不是'Toe'album不是'Brum'的行。

另一种方式-

这将给出要删除的行。

代码语言:javascript
复制
dataset_ex %>% filter(track == "Toe" & album == "Brum")

#  album track
#1  Brum   Toe

现在否定上面的条件,以得到您想要保留的行-

代码语言:javascript
复制
dataset_ex %>% filter(!(track == "Toe" & album == "Brum"))

#  album track
#1  Brim   Tad
#2  Brim   Toe
#3  Brum   Ram
票数 1
EN

Stack Overflow用户

发布于 2021-06-05 01:18:19

您可以在distinct()上使用track,将所有其他列都保存在dataframe中。

代码语言:javascript
复制
dataset_ex <- distinct(dataset_ex, track, .keep_all = TRUE)
dataset_ex

#   album track
# 1  Brim   Tad
# 2  Brim   Toe
# 3  Brum   Ram
票数 1
EN

Stack Overflow用户

发布于 2021-06-05 01:23:40

我想这可能对你有用

代码语言:javascript
复制
library(dplyr)
dataset_ex %>% distinct(track, .keep_all= TRUE)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67845441

复制
相关文章

相似问题

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