Estoy intentando escalar los valores en una matriz para que cada columna sume uno. Lo he intentado:División de columnas por columnas en R
m = matrix(c(1:9),nrow=3, ncol=3, byrow=T)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
colSums(m)
12 15 18
m = m/colSums(m)
[,1] [,2] [,3]
[1,] 0.08333333 0.1666667 0.25
[2,] 0.26666667 0.3333333 0.40
[3,] 0.38888889 0.4444444 0.50
colSums(m)
[1] 0.7388889 0.9444444 1.1500000
obviamente esto no funciona. entonces he intentado esto:
m = m/matrix(rep(colSums(m),3), nrow=3, ncol=3, byrow=T)
[,1] [,2] [,3]
[1,] 0.08333333 0.1333333 0.1666667
[2,] 0.33333333 0.3333333 0.3333333
[3,] 0.58333333 0.5333333 0.5000000
m = colSums(m)
[1] 1 1 1
por lo que este funciona, pero se siente como que estoy perdiendo algo. Esto no puede ser como se hace rutinariamente. Estoy seguro de que estoy siendo estúpido aquí. Cualquier ayuda que puede dar sería apreciada Saludos, Davy
brillante. ¡Gracias! Avergonzado por haberme olvidado por completo de 'prop.table()'. –