我遇到这样的情况:
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
答案 0 :(得分: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