I have a dataframe:
df <- data.frame('a'=c(1,NA,3,NA,NA), 'b'=c(NA,NA,NA,4,50), 'c'=c(NA,5,NA,NA,NA))
df
a b c
1 1 NA NA
2 NA NA 5
3 3 NA NA
4 NA 4 NA
5 NA 50 NA
我需要创建一个新列d,将仅包含非NA值的值组合起来:
a b c d
1 1 NA NA 1
2 NA NA 5 5
3 3 NA NA 3
4 NA 4 NA 4
5 NA 50 NA 50
rowSums(df, na.rm=TRUE)
,或者如果它总是1,你不想冒险求和,则可以使用apply(df[1:3], 1, na.omit)
或apply(df[1:3], 1, function(z) na.omit(z)[1])
。 - r2evans