En R, tengo un marco de datos que comprende una etiqueta de clase C (un factor) y dos mediciones, M1 y M2 . ¿Cómo calculo la correlación entre M1 y M2 dentro de cada clase?
Idealmente, obtendría un marco de datos con una fila para cada clase y dos columnas: la etiqueta de clase C y la correlación.
r
correlation
NPE
fuente
fuente
plyr
paquete, ¿no? :)Si está inclinado a usar funciones en el paquete base, puede usar la
by
función y luego volver a ensamblar los datos:fuente
by
, pero no pude encontrar la manera de transformar el resultado en un marco de datos.Otro ejemplo usando paquetes base y datos de ejemplo de Tal:
fuente
plyr
hace, pero te da un control más fino, aunque no es tan limpio. Mi opinión cambiaría si una solución tuviera un mejor perfil de tiempo / memoria. Sin embargo, no los he comparado.Usar data.table es más corto que dplyr
fuente
Aquí hay un método similar que también le dará una tabla con los valores de n y p para cada correlación (redondeado a 3 decimales por conveniencia):
fuente
Aquí hay una solución más moderna, usando el
dplyr
paquete (que aún no existía cuando se hizo la pregunta):Construir la entrada:
Calcule las correlaciones:
La salida:
fuente