2016-06-29 59 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