1

次の例では、同点の場合に R に複数のインデックスを選択するように依頼するにはどうすればよいですか (たとえば、行 3 では、x 列と y 列の両方で発生する最小値は 2 です。ただし、sapplyx 列のみのインデックスを示します) ) (これが素朴な質問のように見える場合は申し訳ありません)

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 に答える