Система рангов в R, рекурсивная функция - PullRequest
0 голосов
/ 07 сентября 2018

Я действительно понятия не имею, что я ищу: цикл, рекурсивная функция или что-то другое.
Это мой игрушечный набор данных:

ID1  S1   S2   S3   
1    10   20   30   
2    20   30   40
1    50   60   70
3    20   40   50
1    10   30   10 
2    40   20   20


toy$OLD_RANK = найти предыдущую строку с тем же ID1 и скопировать NEW RANK этой строки.Если ни одна строка с таким же ID1 не присвоит присвоенное значение (10 в этом примере)

toy$NEW_RANK = OLD_RANK + S1 + S2 + S3

ожидаемый результат:

ID1  S1   S2   S3   OLD_RANK    NEW_RANK
1    10   20   30      10        70  
2    20   30   40      10        100
1    50   60   70      70        250
3    20   40   50      10        120
1    10   30   10      280       330
2    40   20   20      100       180

кадр данных для R по запросу:

toy <- matrix(c(1,10,20,30,2,20,30,40,1,50,60,70,3,20,40,50,1,10,30,10,2,40,20,20),ncol=4,byrow=TRUE)
colnames(toy) <- c("ID1","S1","S2","S3")
toy <- as.data.frame(database )
...