questi sono i miei dati
A B C
A 9 1 0
B 2 2 2
C 3 3 3
Voglio ottenere la percentuale di ogni riga
i miei dati sono attesi
A B C
A 0.9 0.1 0
B 0.33 0.33 0.33
C 0.33 0.33 0.33
Ho creato i miei dati con "dcast" e c'è il nome della colonna su A, B e C. quindi in realtà sono i miei dati reali
Name A B C
1 A 0.9 0.1 0
2 B 0.33 0.33 0.33
3 C 0.33 0.33 0.33
risposte:
12 per risposta № 1Sembra un caso equo
df/rowSums(df)
# A B C
# A 0.9000000 0.1000000 0.0000000
# B 0.3333333 0.3333333 0.3333333
# C 0.3333333 0.3333333 0.3333333
Se non vuoi così tante cifre dopo il set di punti options(digits = 2)
o usare print(df/rowSums(df), digits = 2)
o usare round
round(df/rowSums(df), 2)
# A B C
# A 0.90 0.10 0.00
# B 0.33 0.33 0.33
# C 0.33 0.33 0.33
O come suggerito da @akrun
round(prop.table(as.matrix(df1),1),2)