r-报告满足条件的最后一列



我正在研究R,并试图找出如何报告满足条件的最后一列。我的数据看起来像这样:

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

我希望能够附加一列,记录最后一列(最右边((1,2,3,4(,该列的值满足条件(例如<.05(。因此,第一行将报告为4,而第二行将报告3。

谢谢!!

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))

这里有另一个选项(但@Ronak Shah的max.col方法比这个更推荐(

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

最新更新