1

在以下示例中,如果存在平局,我如何要求 R 选择多个索引(例如,在第 3 行中,x 和 y 列的最小值为 2。但是,sapply仅给出 x 列的索引)(如果这看起来像一个幼稚的问题,我深表歉意)

df1< -structure(list(x = c(5, 2, 3), y = c(4, 3, 3)), .Names = c("x", 
"y"), row.names = c(NA, -3L), class = "data.frame")

 df1
  x y
1 5 4
2 2 3
3 3 3
sapply(as.list(rownames(df1)),function(x) which.min(df1[x,]))
y x x 
2 1 1 
4

1 回答 1

6

只需更改which.min(df1[x,])which(df1[x,]==min(df1[x,])). 你甚至可以通过使用apply而不是缩短你的代码sapply

> apply(df1, 1, function(x) which(x==min(x)))
[[1]]
y 
2 

[[2]]
x 
1 

[[3]]
x y 
1 2 
于 2013-10-10T16:05:22.723 回答