带NA的R中的折叠元素

带NA的R中的折叠元素,r,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

我的数据如下

    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

如果我们不介意失去订单,那么不妨尝试一下:

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

如果我们不介意失去订单,那么不妨尝试一下:

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

对需求很好,感谢逻辑对需求很好,感谢逻辑