【问题标题】:Extract column name of first non NA value in each row of my dataframe [duplicate]在我的数据框的每一行中提取第一个非 NA 值的列名 [重复]
【发布时间】:2017-04-08 00:45:38
【问题描述】:

我的数据框如下所示:

列名:

state   city     name_of_company    11/22    11/23    11/24
ga    atlanta     name              NA       NA         1
ny    newyork     name              NA       .75        1

我正在尝试创建一个新列,其中包含对应于每行中第一个非 NA 值的日期。我不知道如何做到这一点,因此非常感谢任何帮助。

【问题讨论】:

  • 第一个非NA之后会有更多的非NA值。非 NA 值代表业务交易,所以第一个值的日期是公司开业的日期——这就是我所需要的

标签: r


【解决方案1】:

没有max.col?我很失望。 ;-)

names(dat[4:6])[max.col(!is.na(dat[4:6]), "first")]
#[1] "11/24" "11/23"

【讨论】:

    【解决方案2】:

    这是一种可能的解决方案

    df$first_NA <- apply(df,1,function(x) names(which(which(!is.na(x))>3))[1])
    

    【讨论】:

    • 获取第一个 NA 值的列名的较早答案,我对其进行了编辑以获取第一个非 NA 值列名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2016-05-13
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2022-07-05
    • 2022-11-29
    相关资源
    最近更新 更多