折叠R中的元素与NA

时间:2016-06-07 14:53:21

标签: r

我有数据

    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

1 个答案:

答案 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])]
           )
         })