我正在研究R,并试图找出如何报告满足条件的最后一列。我的数据看起来像这样:
Col1 Col2 Col3 Col4
.00 .01 .03 .04
.00 .07 .02 .18
我希望能够附加一列,记录最后一列(最右边((1,2,3,4(,该列的值满足条件(例如<.05(。因此,第一行将报告为4,而第二行将报告3。
谢谢!!
将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))
这里有另一个选项(但@Ronak Shah的max.col
方法比这个更推荐(
df$result <- with(
data.frame(which(df < 0.05, arr.ind = TRUE)),
tapply(col, row, max)
)