2013-08-19 9 views
6

Mam data.frame, który zawiera 4 kolumny (podane poniżej). Chcę znaleźć indeks minimalnej kolumny (NIE WARTOŚĆ) dla każdego wiersza. Każdy pomysł, aby to osiągnąć?R zwraca indeks minimalnej kolumny dla każdego wiersza.

> d 
      V1   V2   V3   V4 
1 0.388116155 0.98999967 0.41548536 0.76093748 
2 0.495971331 0.47173142 0.51582728 0.06789924 
3 0.436495321 0.48699268 0.21187838 0.54139290 
4 0.313514389 0.50265539 0.08054103 0.46019601 
5 0.277275961 0.39055360 0.29594162 0.70622532 
6 0.264804739 0.86996266 0.85708635 0.61136741 
7 0.627344463 0.54277873 0.96769568 0.80399490 
8 0.814420492 0.35362949 0.39023446 0.39246250 
9 0.517459983 0.65895805 0.93662382 0.06762166 
10 0.498319937 0.67081260 0.43225997 0.42139151 
11 0.046862110 0.97304915 0.06542971 0.09779383 
12 0.619009734 0.82363618 0.14514799 0.52858058 
13 0.007262782 0.82203403 0.08573499 0.61094206 
14 0.001602586 0.33241230 0.57762669 0.45285004 
15 0.698388370 0.83541257 0.21051568 0.84431347 
16 0.296088411 0.34363164 0.02179999 0.70551493 
17 0.897869571 0.50625928 0.92861583 0.61249019 
18 0.372497428 0.29025182 0.23201891 0.55737699 
19 0.172931860 0.03604668 0.50291560 0.10850847 
20 0.988827604 0.15800337 0.87999839 0.09899663 

Więc chcę następujący wynik:

1 1 
2 4 
3 3 
4 3 

która trwa do wszystkich wierszy. Dzięki

Odpowiedz

15

Twój opis angielski sugeruje chcesz:

apply(df, 1, which.min) 

Ale odpowiedź dajesz nie jest sformatowana jako wektor i nie jest poprawna odpowiedź, jeśli powyższa interpretacja jest poprawna. Och, czekaj, spodziewałeś się rownumbers.

as.matrix(apply(d, 1, which.min)) 

    [,1] 
1  1 
2  4 
3  3 
4  3 
5  1 
6  1 
7  2 
8  2 
9  4 
10 4 
11 1 
12 3 
13 1 
14 1 
15 3 
16 3 
17 2 
18 3 
19 2 
20 4 
Powiązane problemy