r - R中变量的所有值的子集
问题描述
我有一个数据框,其中一个变量的值与另一个变量的值不同。像这样: 数据框
因此,当 S 的值包含 B 的所有可能值时,我需要一个子集。在此示例中,el 子集符合 S = a 和 S = b:
任何想法?谢谢!!
解决方案
一个选项是按“S”和具有“B” “B”列值的filter
行进行分组all
unique
%in%
library(dplyr)
un1 <- unique(df1$B)
df1 %>%
group_by(S) %>%
filter(all(un1 %in% B))
# A tibble: 8 x 2
# Groups: S [2]
# S B
# <fct> <dbl>
#1 a 1
#2 a 2
#3 a 3
#4 a 4
#5 d 1
#6 d 2
#7 d 3
#8 d 4
或与data.table
library(data.table)
setDT(df1)[, .SD[all(un1 %in% B)], S]
或使用base R
df1[with(df1, ave(B, S, FUN = function(x) all(un1 %in% x)) == 1),]
数据
df1 <- data.frame(S = rep(letters[1:4], c(4, 3, 2, 4)),
B = c(1:4, c(1, 3, 4), 1:2, 1:4))
推荐阅读
- laravel - Vue路由器在页面重新加载后更改url
- sql - 如何使用特定格式交换名字和姓氏
- reactjs - 无法在reactjs中路由
- php - CakePHP 3 - 如何在 bootstrap.php 中记录 useImmutable() 方法
- ruby-on-rails - Sendgrid v3 不适用于我使用 rails my_mailer.rb
- android - 片段中的 Listview 适配器给出空指针异常
- android - 具有空值的实体的房间(SQLite)替换策略不起作用
- java - 如何流式传输一系列 BigInteger?
- swift - 从数据库中检索数据
- react-native - React Native,将String转换为Date时,在Debug模式下结果不同