2017-01-24 1 views
0

Ich habe diesen Code, der gut funktioniert, aber wie kann ich die 3 Zeilen Code in 1 kombinieren?kombinieren dyplr Kriteriencode?

Grundsätzlich muss ich diese zusätzlichen Helfer QC-Spalten erstellen, ich übersetze dies auch von anderen SAS-Code (das jemand anderes besitzt) zu R, das Ziel ist es einfach zu übersetzen, nicht in Frage zu stellen.

Das Ziel ist, am Ende des Datensatzes mit 3 zusätzlichen Spalten N, C und K zu enden, wenn ihre Bedingung erfüllt ist.

TEST <- FINAL %>% filter(is.na(NAME)) %>% mutate(N = 1) 

TEST <- FINAL %>% filter(is.na(COUNTRY)) %>% mutate(C = 1) 

TEST <- FINAL %>% filter(CATEGORY == 'T' & (BEGN_DT <= 20170302 & END_DT >= 20170312)) %>% mutate(K = 1) 
+0

Verwenden Sie 'ifelse' in' mutate'. – alistaire

+0

Können Sie ein Beispiel geben? –

+2

[Können Sie?] (Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#5963610) – alistaire

Antwort

1

Conditional mutate ist noch a work-in-progress für dplyr, aber es kann getan werden:

mtcars %>% 
    mutate(x = case_when(.$cyl == 6 ~ 1)) %>% 
    mutate(y = case_when(.$am == 1 ~ 9)) %>% 
    mutate(z = case_when(is.na(.$x) ~ 5)) 
0

Wir können dies tun, ohne filter ing

FINAL %>% 
    mutate(N = as.integer(is.na(NAME)), 
      C = as.integer(is.na(COUNTRY)), 
      K = as.integer(CATEGORY == 'T' & (BEGN_DT <= 20170302 & END_DT >= 20170312))) 

Es in binären Spalten mit 1 führen entsprechend TRUE-Werten für die Bedingung und 0 für andere Fälle.

+1

danke Ya'All! Interessant zu sehen, wie verschiedene Leute Gehirne arbeiten, ich wünschte, es gäbe einen Weg, negative Leute zu markieren, sie saugen oder zumindest entfernen sie von helfen auf meinem Posten. –