2016-06-29 48 views
0

我有一種特殊的情況是這樣的:減少兩行到一行中的R

df<-data.frame(A=c(1, NA), B=c(NA, 2), C=c(3, NA), D=c(4, NA), E=c(NA, 5)) 
df 
    A B C D E 
1 1 NA 3 4 NA 
2 NA 2 NA NA 5 

我想的是,在所有length(!is.na(df$*))==1調理,減少df到:

df 
    A B C D E 
1 1 2 3 4 5 
+2

'colSums(df,na.rm = TRUE)'有用嗎?它不會執行您提到的NA檢查,但不確定這是否是您提供的樣本數據的絕對必需品。 – Sam

回答

3

只要由於生成的行數相等,因此您可以使用:

dfNew <- do.call(data.frame, lapply(df, function(i) i[!is.na(i)])) 

其中導致

dfNew 
A B C D E 
1 1 2 3 4 5