【问题标题】:Remove Last Non-NA Value from Dataframe [closed]从数据框中删除最后一个非 NA 值 [关闭]
【发布时间】:2017-08-18 10:57:21
【问题描述】:

我有一个如下所示的数据框:

Col1    Col2    Col3     Col4   Col5     Col6     Col7
  10       A       B        C     NA       NA       NA
  12       B       P        V      G       NA       NA
  14       C       I        K      H        M        H
  55       N       K       NA     NA       NA       NA
  34       M       N        O      P        Q       NA

如何删除每行中最后一个非 NA 值并替换为 NA?

最终输出:

Col1    Col2    Col3     Col4   Col5     Col6     Col7
  10       A       B       NA     NA       NA       NA
  12       B       P        V     NA       NA       NA
  14       C       I        K      H        M       NA
  55       N      NA       NA     NA       NA       NA
  34       M       N        O      P       NA       NA

【问题讨论】:

    标签: r replace na


    【解决方案1】:

    我们可以使用max.col 来查找每行最后一个非 NA 元素,然后通过行/列索引,在原始数据集中将这些元素设置为 NA

    df1[cbind(1:nrow(df1), max.col(!is.na(df1), 'last'))] <- NA
    df1
    #   Col1 Col2 Col3 Col4 Col5 Col6 Col7
    #1   10    A    B <NA> <NA> <NA> <NA>
    #2   12    B    P    V <NA> <NA> <NA>
    #3   14    C    I    K    H    M <NA>
    #4   55    N <NA> <NA> <NA> <NA> <NA>
    #5   34    M    N    O    P <NA> <NA>
    

    【讨论】:

    猜你喜欢
    • 2016-01-21
    • 2017-08-17
    • 2022-01-03
    • 2017-03-27
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多