r - 如何检查任何值是否相互匹配(不预定义任何值)
问题描述
可能是一个非常快的 - 我想知道如何检查多个值是否相互匹配(没有预定义任何值)。
例如,下面的“差异”列可以包含 0-100 之间的任何值。每当有多行具有匹配值时(在下面的示例中,有 2 行匹配,但可能全部为 3 行,或者根本没有),我想过滤它们并将它们转发。
Stim difference
1 book1 30
2 book2 30
3 book3 15
是否有某种带有过滤器的解决方案,沿着这些思路:
...
filter(difference == difference) %>%
...
任何帮助表示赞赏!
解决方案
我不完全确定您是要删除重复项还是只有重复项,所以这里有两种解决方案。
library(tidyverse)
#sample data
book_data <- tibble(book = paste0("book", 1:3), difference = c(30,30, 15))
#remove duplicates
book_data %>%
filter(!duplicated(difference))
#> # A tibble: 2 x 2
#> book difference
#> <chr> <dbl>
#> 1 book1 30
#> 2 book3 15
#Keep only duplicates
book_data %>%
group_by(difference) %>%
filter(n() > 1)
#> # A tibble: 2 x 2
#> # Groups: difference [1]
#> book difference
#> <chr> <dbl>
#> 1 book1 30
#> 2 book2 30
推荐阅读
- html-email - HTML 电子邮件模板是否应该使用表格元素进行布局?
- join - 在 CLI 上使用 bq 从 BigQuery 标准 SQL 连接表中打印出漂亮的值表?
- javascript - 从所有选中的复选框中获取 ID
- angular - 如何在离子框架中调用菜单切换承诺
- google-cloud-speech - Google 云平台上的音频是否可用于 Speech-To-Text?
- mysql - 计算mysql中项目的总价格
- strawberry-perl - 如何为 IIS 设置 Strawberry Perl v5.30 ISAPI 支持
- java - 奇怪的 NPE:实例方法内的原始字段 null
- r - 将来自闪亮的 BrushedPoints() 的输入转换为数据框
- angular - Angular - 如何将 httpClient.request() 收到的对象映射到 Angular 中的接口