我有一个100X10的数据帧。对于每一行,我想添加一个额外的列,其中包含包含最小值的列号。此功能也仅适用于特定列,例如第6至10栏。
答案 0 :(得分:2)
我们可以使用max.col
transform(df1, newCol = (max.col(-1*df1[6:10], "first"))+5)
注意:与基于任何循环或基于max.col
的方法相比,apply
方法会非常快。
set.seed(24)
df1 <- as.data.frame(matrix(rnorm(100*10), ncol=10))
答案 1 :(得分:1)
使用@ akrun的df1
df1$index_col <- apply(df1[,6:10],1,which.min)+5