【问题标题】:How to apply column-wise logic to a dataframe?如何将按列逻辑应用于数据框?
【发布时间】:2021-07-12 12:28:12
【问题描述】:

我想改变一个新列,并用第一列/年份的第一个 0 填充它。

考虑以下数据框:

df <- data.frame(pred2014 = c(0,0,1), pred2015 = c(0,0,1),
                 pred2016 = c(0,1,1), measured2017 = c(0,0,1))
df

在本例中,第 1 行为 pred2014,第 2 行 = pred2016,第 3 行 = NA。

【问题讨论】:

  • 不应该 row2 = pred2014?
  • 是的,很好 @ThomasIsCoding - 我的例子很糟糕,但 akrun 的解决方案完全符合我的需要。

标签: r date tidyverse data-wrangling


【解决方案1】:

我们可以使用max.col

nm1 <- names(df)[max.col(df == 0, 'first') * NA^!rowSums(df == 0)]
nm1
#[1] "pred2014" "pred2016" NA    

或使用apply

apply(df, 1, function(x) names(x)[which(x == 0)[1]]) 

【讨论】:

    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    相关资源
    最近更新 更多