【发布时间】: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
我正在使用 R 并试图弄清楚如何报告满足条件的最后一列。我的数据如下所示:
Col1 Col2 Col3 Col4
.00 .01 .03 .04
.00 .07 .02 .18
我希望能够附加一个列,记录最后(最右侧)列 (1,2,3,4),该列的值满足条件(例如,<.05>
谢谢!!
【问题讨论】:
标签: r dataframe conditional-statements
将max.col 与ties.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相同。
这是另一种选择(但比这更推荐@Ronak Shah 的max.col 方法)
df$result <- with(
data.frame(which(df < 0.05, arr.ind = TRUE)),
tapply(col, row, max)
)
【讨论】: