首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据选定的变量按分组项目进行筛选

根据选定的变量按分组项目进行筛选
EN

Stack Overflow用户
提问于 2018-01-01 02:07:52
回答 2查看 41关注 0票数 0

我有一个数据

代码语言:javascript
复制
subject <- c(1,1,1,2,2,3,3,3)
day <- c(1,2,3,1,2,1,2,3)
RRT <- c(0,0,1,1,0,0,1,1)
SOFA <- c(8,9,2,10,12,11,19,8)
libo <- data.frame(subject,day,RRT,SOFA)

我只想选择第一天RRT =0的患者的数据。

代码语言:javascript
复制
subject <- c(1,1,1,3,3,3)
day <- c(1,2,3,1,2,3)
RRT <- c(0,0,1,0,1,1)
SOFA <- c(8,9,2,11,19,8)
libodesired <- data.frame(subject,day,RRT, SOFA)

如何才能在不将长格式更改为宽格式的情况下执行它?是否可以使用dplyr?

EN

回答 2

Stack Overflow用户

发布于 2018-01-01 02:12:51

您可以使用双subset

代码语言:javascript
复制
subset(libo, 
       subject %in% subset(libo, RRT == 0 & day == 1)$subject)

  subject day RRT SOFA
1       1   1   0    8
2       1   2   0    9
3       1   3   1    2
6       3   1   0   11
7       3   2   1   19
8       3   3   1    8

根据selected subjects subset(libo %in% SUBJECTS)选择

  • 根据RRT选择
  • 和根据selected subjectssubset(libo %in% SUBJECTS)

选择RRT day dataframe

票数 0
EN

Stack Overflow用户

发布于 2018-01-01 02:15:11

使用tidyversedplyr,您可以根据您的条件选择主题并连接到您的表的子集

代码语言:javascript
复制
subject<-c(1,1,1,2,2,3,3,3)
day<-c(1,2,3,1,2,1,2,3)
RRT<-c(0,0,1,1,0,0,1,1)
SOFA<-c(8,9,2,10,12,11,19,8)
libo<-data.frame(subject,day,RRT,SOFA)

library(dplyr, warn.conflicts = TRUE)
libo %>%
  # select base on your criteria
  group_by(subject) %>%
  filter(RRT == 0 & day == 1) %>%
  select(subject) %>%
  # only keep rows from libo based on your subjects selection
  left_join(libo, by = "subject")
#> # A tibble: 6 x 4
#> # Groups:   subject [?]
#>   subject   day   RRT  SOFA
#>     <dbl> <dbl> <dbl> <dbl>
#> 1       1     1     0     8
#> 2       1     2     0     9
#> 3       1     3     1     2
#> 4       3     1     0    11
#> 5       3     2     1    19
#> 6       3     3     1     8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48044743

复制
相关文章

相似问题

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