La dimensión de X debe tener una longitud positiva en R para el promedio.
Quiero calcular el promedio de puntos o media para cada grupo, el código:
y <- factor(data[,4])
K<-length(levels(y))
K
Xk <-list()
Xk <- split(X,y)
gk<-list()
for (k in 1:K){
gk[[k]]<-matrix(apply(Xk[[k]],2,mean),ncol=1)
}
¿Cómo puedo evitar este error?
Error in apply(Xk[[k]], 2, mean) : dim(X) must have a positive length
Datos:
X1 X2 X3 grupo
7 26 84 "1"
9 28 84 "1"
8 27 81 "2"
10 23 81 "2"
11 25 80 "3"
12 24 79 "3"
13 29 78 "3"
davy.ai
El mensaje de error sugiere que el objeto Xk[[k]] no tiene dimensiones. Esto puede ser porque no hay observaciones pertenecientes a un grupo particular en el conjunto de datos, por lo que Xk[[k]] es una matriz vacía.
Para evitar este error, puedes agregar una verificación para asegurarte de que Xk[[k]] no está vacío antes de calcular la media utilizando apply(). Una forma de hacer esto es modificar el bucle for de la siguiente manera:
Este código verifica el número de filas en Xk[[k]] utilizando la función nrow(), y solo calcula la media si hay al menos una observación en el grupo. Si Xk[[k]] está vacío, el código asigna un valor NA a gk[[k]] o cualquier otro valor adecuado para indicar datos faltantes.