2016-05-18 8 views
1

値置き換え、iは必要聖霊降臨祭4列は、は、NAが私は、このデータフレームを有する

おかげ

新しい列の列B、C及びDをマージであります機能を持っていtidyr
A   B   C   D 
1.40 Fria Moderada  NA   NA 
-1.17 Fria Debil  NA   NA 
-0.85  NA   NA   Neutro 
-0.74  NA   NA   Neutro 
0.58  NA  Calida Debil NA 
1.29  NA  Calida Moderada NA 

答えて

3

パッケージは、トリックを行いその団結:

#Sample Data 
#dput(d)  
d<-structure(list(A = c(1.4, -1.17, -0.85, -0.74, 0.58, 1.29), B = c("Fria Moderada", 
      "Fria Debil", NA, NA, NA, NA), C = c(NA, NA, NA, NA, "Calida Debil", 
      "Calida Moderada"), D = c(NA, NA, "Neutro", "Neutro", NA, NA)), .Names = c("A", 
      "B", "C", "D"), class = "data.frame", row.names = c(NA, -6L)) 


library(tidyr) 
d[is.na(d)]<-"" #removes the NAs 
unite(d, newcol, c(B, C, D), sep="") 
2

それは常に我々が使用することができ、「D」の列「B」の行ごとに1つだけ非NA値を持っている場合pmaxからbase R

cbind(d[1], newcol=do.call(pmax, c(d[-1], list(na.rm=TRUE)))) 
# A   newcol 
#1 1.40 Fria Moderada 
#2 -1.17  Fria Debil 
#3 -0.85   Neutro 
#4 -0.74   Neutro 
#5 0.58 Calida Debil 
#6 1.29 Calida Moderada 
関連する問題