基于分组数据帧中的两个条件的子集

Posted

技术标签:

【中文标题】基于分组数据帧中的两个条件的子集【英文标题】:subset based on two condition from grouped dataframe 【发布时间】:2022-01-14 19:18:00 【问题描述】:

在我的data 中,我尝试对唯一的study 值进行子集化,其中reporting 既是subscale 又是composite

在这个data 中,所需的输出将是study==1 的行。我尝试了以下但没有成功。有什么解决办法吗?

library(tidyverse)
m="
study  reporting
1      subscale
1      composite
2      subscale
2      subscale
3      composite"

data <- read.table(text = m, h=T)

data %>% group_by(study) %>% 
  filter(reporting=="composite"&reporting=="subscale") # Doesn't return anything

【问题讨论】:

【参考方案1】:

你可以试试-

library(dplyr)

data %>% 
  group_by(study) %>% 
  filter(all(c('composite', 'subscale') %in% reporting)) %>%
  ungroup()

#  study reporting
#  <int> <chr>    
#1     1 subscale 
#2     1 composite

【讨论】:

如有兴趣,HERE

以上是关于基于分组数据帧中的两个条件的子集的主要内容,如果未能解决你的问题,请参考以下文章

R:基于多个条件的两个数据帧的子集

基于不同数据帧中的日期时间的子集熊猫数据帧

基于多个条件的子集数据框[重复]

基于逻辑条件的列表中的子集元素

如何根据一个数据帧中的列值和R中另一个数据帧的列标题名称有条件地创建新列

R-匹配两个数据帧中的两列