ho un frame di dati come questo:r - Come aggiungere indice di riga ad un frame di dati, sulla base di combinazione di fattori
df <- data.frame(
Dim1 = c("A","A","A","A","A","A","B","B"),
Dim2 = c(100,100,100,100,200,200,100,200),
Value = sample(1:10, 8)
)
Dim1 Dim2 Value
1 A 100 3
2 A 100 6
3 A 100 7
4 A 100 4
5 A 200 8
6 A 200 9
7 B 100 2
8 B 200 10
(La colonna Valore è solo per illustrare che ogni riga è un punto di dati il valore effettivo non ha importanza.) In definitiva, ciò che vorrei fare è tracciare i valori rispetto al loro indice all'interno della serie definita da Dim1 e Dim2. Per questo motivo, penso che bisogno di aggiungere una nuova colonna che contiene gli indici, che sarebbe simile a questa (aggiunte righe vuote tra le righe da rendere evidente ciò che i sottoinsiemi sono):
Dim1 Dim2 Value Index
1 A 100 1 1
2 A 100 9 2
3 A 100 4 3
4 A 100 10 4
5 A 200 7 1
6 A 200 3 2
7 B 100 5 1
8 B 200 8 1
Come faccio a fare questo con eleganza in R? Vengo da Python e il mio approccio predefinito è quello di for-loop sulle combinazioni di Dim1 & Dim2, tenendo traccia del numero di righe in ciascuna e assegnando il massimo incontrato finora ad ogni riga. Ho cercato di capirlo, ma il mio vettore-fu è debole.
E 'ciò che si sta cercando di fare? 'df $ index <- c (1,2,3,4,1,2,1,1)' –
@Jdbaba In questo esempio particolare, sì. Generalmente no, dal momento che ho bisogno di una funzione astratta che funzioni con un data.frame più grande con più variabili fattore, ecc. – user2296603
Dato che questo è stato risposto con successo, c'è un modo in cui il titolo potrebbe essere più informativo? Per me sapere come farlo è di fondamentale importanza e vorrei che le persone potessero trovarlo. – user2296603