我有数据
Date1 Date2 Date3
2005-12-22 NA NA
2009-10-11 NA NA
NA 2005-04-11 NA
NA NA 2008-11-06
NA NA 2006-01-02
NA 2005-04-16 2006-01-02
我想用NA折叠元素并得到:
Date1 Date2 Date3
2005-12-22 2005-04-11 2008-11-06
2009-10-11 2005-04-16 2006-01-02
2006-01-02
答案 0 :(得分:4)
如果我们不介意丢失订单,那么可以试试这个:
apply(df1, 2, sort, na.last = TRUE)
保持订单:
sapply(1:ncol(df1),
function(i){
c(
df1[, i][!is.na(df1[, i])],
df1[, i][ is.na(df1[, i])]
)
})