2017-12-31 37 views
0

Ich habe ein Datum mitFiltern nach Gruppenprojekt ausgewählt nach Variablen

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) 

und ich mag Daten auszuwählen nur von Patienten mit RRT = 0 am Tag 1. Meine gewünschte Ausgabe ist

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) 

Wie kann ich es ohne Änderung von Lang- zu Großformat durchführen? Ist es mit dplyr möglich?

+2

Mögliche Duplikat der Teilmenge: [* Wie effizient ein Datenrahmen filtern *?] (https://stackoverflow.com/q/7106330/2204410) – Jaap

Antwort

0

Sie können mit Doppel subset:

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 
  • Select subjects nach RRT und day (subset(libo, RRT == 0 & day == 1)$subject)
  • Subset Datenrahmen nach ausgewählten Themen subset(libo %in% SUBJECTS)
0

die tidyverse und dplyr verwenden, können Sie kann sele ct die Themen auf Ihren Kriterien und kommen Sie Ihren Tisch

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

Es war perfekt. Vielen Dank. Nur noch eine Frage: Wie kann ich eine neue Tabelle mit diesen Werten erstellen? – alexandreliborio

+0

Sie können mit '<-' zuweisen, wie Sie es getan haben, um den ersten Datenrahmen zu erstellen. – cderv