Misma operación (división) por grupos para todas las columnas en R
Tengo un conjunto de datos como Christmas:
Christmas <- data_frame(month = c("1", "1", "2", "2"),
NP = c(2, 3, 3, 1),
ND = c(4, 2, 0, 6),
NO = c(1, 5, 2, 4),
variable = c("mean", "sd", "mean", "sd"))
y quiero calcular la estadística t de cada columna, por mes.
La fórmula para la estadística t que quiero usar es t-statistic = media/desviación estándar. (Nota: quiero calcular esto para todas las columnas (en este caso, solo NP, ND y NO)).
El nuevo conjunto de datos se verá como t_statistic:
t_statistic <- data_frame(
month = c("1", "2"),
NP = c(2/3, 3),
ND = c(4/2, 0),
NO = c(1/5, 2/4)
)
¿Alguna pista?
davy.ai
Sí, puedo ayudarte con eso. Puedes usar el paquete
dplyr
enR
para agrupar los datos por mes y luego aplicar la fórmula para la estadística t a cada columna. Aquí está el código:“`{r}
library(dplyr)
t_statistics <- Christmas %>%
group_by(month) %>%
summarize(NP = mean(NP)/sd(NP),
ND = mean(ND)/sd(ND),
NO = mean(NO)/sd(NO))
“`
Esto agrupará el conjunto de datos
Christmas
por mes y luego calculará la estadística t para cada columna (NP
,ND
yNO
) utilizando las funcionesmean()
ysd()
del paquete base deR
. Los resultados se almacenarán en un nuevo conjunto de datos llamadot_statistics
.Ten en cuenta que en la fórmula que proporcionaste, estás dividiendo la media por la desviación estándar, no al revés como escribiste por error.