2017-07-24 3 views
0

Ich bin auf der Suche nach zwei Spalten, die verschiedene Daten enthalten zusammenführen. Das ist, wo es in einer Spalte leer ist, es ist nicht leer in einem anderen, im Wesentlichen Daten von zwei verschiedenen Bedingungen in einer Studie gesammelt, um eine Analyse zu starten, muss ich diese Daten kombinieren und T-Tests ausführen. Ich frage mich, wie numerische Spalten mit dplyr kombinieren -Merge über zwei Spalten mit dplyr

check <- check %>% 
    mutate(cat = rowSums(.[1:2])) 


> dput(head(check)) 
structure(list(t7_1_ExpA_Intro1 = c(NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_), t7_1_ExpB_Intro1 = c(NA, 
NA, NA, 3L, NA, NA), t7_1_ExpA_DV = c(NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_), t7_1_ExpB_DV = c(NA, 
NA, NA, 3L, NA, NA), cat = c(NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_)), .Names = c("t7_1_ExpA_Intro1", 
"t7_1_ExpB_Intro1", "t7_1_ExpA_DV", "t7_1_ExpB_DV", "cat"), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")) 
+1

Es wäre einfacher, Ihnen zu helfen, wenn Sie ein [reproduzierbares Beispiel] liefern (https://stackoverflow.com/questions/5963269/how-to-make -a-great-r-reproduzierbar-Beispiel) mit Beispiel-Eingabedaten und der gewünschten Ausgabe. – MrFlick

+0

Wenn es keine Daten gibt, ist es "NA" oder "0"? Sie können 'max' Funktion verwenden – Masoud

+0

' check $ cat <- apply (überprüfen [, 1: 2], 1, max) 'Dies sollte für beide Fälle funktionieren. – Masoud

Antwort

2

Sie dplyr::coalesce Funktion können die Werte von Spalten auswählt, die zuerst als nicht NA erscheinen; sagen, wenn Sie die ersten beiden Spalte kombinieren mögen:

check %>% mutate(cat = coalesce(t7_1_ExpA_Intro1, t7_1_ExpB_Intro1)) 
# or check %>% mutate(cat = do.call(coalesce, .[1:n])) if you have more columns to coalesce 

# A tibble: 6 x 5 
# t7_1_ExpA_Intro1 t7_1_ExpB_Intro1 t7_1_ExpA_DV t7_1_ExpB_DV cat 
#    <int>   <int>  <int>  <int> <int> 
#1    NA    NA   NA   NA NA 
#2    NA    NA   NA   NA NA 
#3    NA    NA   NA   NA NA 
#4    NA    3   NA   3  3 
#5    NA    NA   NA   NA NA 
#6    NA    NA   NA   NA NA 
+1

super, vielen Dank! – Lowpar

Verwandte Themen