Hola Manuel,
No había visto que el resultado era una matriz traspuesta...
He modificado el código para corregirlo y para obtener un resultado con 5
decimales.
No se puede usar la función "rowsum()" porque es una función para
calcular
sumas teniendo un criterio de agrupación que en este caso, no existe.
Tampoco la alternativa de "rowSums()" funcionaría porque trabaja sobre
data.frames y en la función solo se calcula la suma de una fila... Así que
en este caso, dejo el cálculo de la función como estaba inicialmente.
#------------------------------
datIn <- read.table("ContaC.csv", header = TRUE, sep
=",", as.is = TRUE)
datIn$X <- NULL
myfun <- function(x) {
val_sum <- sum(x)
x_avg <- round(x/val_sum,5)
return(x_avg)
}
datOut <- apply(datIn, 1, myfun)
datEnd <- as.data.frame(t(datOut))
#-----------------------------
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 15 de agosto de 2017, 4:19, Manuel Máquez <manuelmx11 en gmail.com>
escribió:
> Carlos, nuevamente muchas gracias, la solución que me diste quedó con una
> pequeña modificación; usé rowsum(x) en lugar de sum.
> Me quedan unas dudas:
> a) Los resultados me quedan en columnas y no en renglones ??.
> b) Me da 'Error in rowsum.default(x) el argumento "group"
está ausente,
> sin valor por omisión'. ¿Qué se debe corregir?
> c) ¿Es posible que los resultados queden en 5 decimales?
> Atentamente;
> *MANOLO MÁRQUEZ P.*
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]