Mam ramkę danych w R i chciałbym wykonać obliczenia na wszystkich parach wierszy. Czy jest prostszy sposób, aby to zrobić niż za pomocą zagnieżdżonej pętli for?Operate na parach wierszy ramki danych
Aby to zrobić, należy rozważyć ramkę danych z dziesięcioma rzędami i chcę obliczyć różnicę wyników między wszystkimi (45) możliwymi parami.
> data.frame(ID=1:10,Score=4*10:1)
ID Score
1 1 40
2 2 36
3 3 32
4 4 28
5 5 24
6 6 20
7 7 16
8 8 12
9 9 8
10 10 4
Wiem, że mógłbym robić tego obliczenia z zagnieżdżonej pętli for, ale jest tam lepsze (bardziej R-owski) sposób to zrobić?
Ooh, bardzo lubię funkcję combn. –
+1 Myślę, że może to być funkcja często pomijana. – Iterator
Próbuję replikować to na ramce danych z kilkoma kolumnami, ale nie mogę sprawić, aby działało. Może @teucer może pokazać, jak to zrobić? Na przykład. jeżeli był score1, score2, score3 itd. Dla jasności różnica między [1,2] a [2,2], a nie sumą [1,] i sumą [2,]. W efekcie otrzymasz ramkę danych z taką samą liczbą kolumn, co oryginalna, ale z większą liczbą wierszy. –