【问题标题】:report last column that satisfies condition报告满足条件的最后一列
【发布时间】:2021-04-01 14:42:29
【问题描述】:

我正在使用 R 并试图弄清楚如何报告满足条件的最后一列。我的数据如下所示:

 Col1 Col2 Col3 Col4
 .00  .01  .03  .04
 .00  .07  .02  .18

我希望能够附加一个列,记录最后(最右侧)列 (1,2,3,4),该列的值满足条件(例如,<.05>

谢谢!!

【问题讨论】:

    标签: r dataframe conditional-statements


    【解决方案1】:

    max.colties.method = 'last' 一起使用。

    df$result <- max.col(df < 0.05, ties.method = 'last')
    df
    #  Col1 Col2 Col3 Col4 result
    #1    0 0.01 0.03 0.04      4
    #2    0 0.07 0.02 0.18      3
    

    数据

    df <- structure(list(Col1 = c(0, 0), Col2 = c(0.01, 0.07), Col3 = c(0.03, 
    0.02), Col4 = c(0.04, 0.18)), class = "data.frame", row.names = c(NA, -2L))
    

    【讨论】:

    • min.col吗?
    • 没有min.col,但你可以使用max.col(-df),它的作用与min.col相同。
    【解决方案2】:

    这是另一种选择(但比这更推荐@Ronak Shahmax.col 方法)

    df$result <- with(
      data.frame(which(df < 0.05, arr.ind = TRUE)),
      tapply(col, row, max)
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-06
      • 2013-11-26
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多