sto cercando di ordinare questo dataframe per numero di abitanti e la data, quindi sto usando il order()
e rank()
funzioni:Come posso creare un nuovo ties.method con la funzione R rank()?
> df <- data.frame(idgeoville = c(5, 8, 4, 3, 4, 5, 8, 8),
date = c(rep(1950, 4), rep(2000, 4)),
population = c(500, 450, 350, 350, 650, 500, 500, 450))
> df
idgeoville date population
1 5 1950 500
2 8 1950 450
3 4 1950 350
4 3 1950 350
5 4 2000 650
6 5 2000 500
7 8 2000 500
8 8 2000 450
Con ties.method = "first"
non ho alcun problema, finalmente sto producendo questo dataframe:
idgeoville date population rank
1 5 1950 500 1
2 8 1950 450 2
3 4 1950 350 3
4 3 1950 350 4
5 4 2000 650 1
6 5 2000 500 2
7 8 2000 500 3
8 8 2000 450 4
Ma in realtà, voglio un dataframe con uguale classifica a parità di popolazione rango, in questo modo:
idgeoville date population rank
1 5 1950 500 1
2 8 1950 450 2
3 4 1950 350 3
4 3 1950 350 3
5 4 2000 650 1
6 5 2000 500 2
7 8 2000 500 2
8 8 2000 450 3
Come posso risolvere questo problema con R? Con un costume ties.method()
o altri trucchi R?
per quanto riguarda i legami = min o max, o media ... tutti tengono le fila delle parità lo stesso valore. – John
Con min e x2 <- c (1,1,2,3), ho 1 1 3 4/ Con max e x2 <- c (1,1,2,3), ho 2 2 3 4 Voglio questo risultato per x2 rank => 1 1 2 3 – reyman64
Oppure usare 'max' e sottrarre il numero di legami dal risultato? '2 2 3 4-1 = 1 1 2 3'. Ora, il problema è capire il numero di cravatte ... Ad ogni modo, mi sono imbattuto in questo thread attraverso Google. – Frank