Dans R, j'ai une trame de données comprenant une étiquette de classe C (un facteur) et deux mesures, M1 et M2 . Comment calculer la corrélation entre M1 et M2 au sein de chaque classe?
Idéalement, je récupérerais un bloc de données avec une ligne pour chaque classe et deux colonnes: l'étiquette de classe C et la corrélation.
r
correlation
NPE
la source
la source
plyr
paquet, non? :)Si vous êtes enclin à utiliser des fonctions dans le package de base, vous pouvez utiliser la
by
fonction, puis réassembler les données:la source
by
, mais je n'ai pas réussi à comprendre comment transformer le résultat en un bloc de données.Un autre exemple utilisant des packages de base et les données d'exemple de Tal:
la source
plyr
fait mais il vous donne un contrôle plus fin, bien qu'il ne soit pas aussi propre. Mon opinion changerait si une solution avait un meilleur profil temps / mémoire. Je ne les ai cependant pas comparés.L'utilisation de data.table est plus courte que dplyr
la source
Voici une méthode similaire qui vous donnera également un tableau avec les valeurs n et p pour chaque corrélation (arrondi à 3 décimales pour plus de commodité):
la source
Voici une solution plus moderne, utilisant le
dplyr
package (qui n'existait pas encore lorsque la question a été posée):Construisez l'entrée:
Calculez les corrélations:
Le résultat:
la source