R: calcul de la corrélation pour un sous-ensemble de mon dataset?
J'ai un dataset avec 20 variables v1 - v20. Maintenant, je voudrais utiliser cor(...) pour calculer la corrélation entre la v2 et la v10 jusqu'à v15 et v3 et v10 jusqu'à v15. Quelle est la meilleure façon de le faire? Dois-je faire pour chaque variable de couplage à l'aide de
cor(v2, v10)
cor(v2, v11)
cor(v2, v12)
and so on?
Ici est le dataset:
> dput(dataset)
structure(list(Number = 1:15, Question.1.1 = c(3L, 4L, 5L, 5L,
4L, 5L, 5L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L), Question.1.2 = c(1L,
2L, 1L, 1L, 4L, 1L, 1L, 2L, 3L, 1L, 1L, 1L, 1L, 1L, 1L), Question.2.1 = c(5L,
3L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), Question.2.2 = c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Question.3.1 = c(2L,
NA, 4L, 5L, 4L, 3L, 5L, 3L, 5L, 5L, 5L, 5L, 4L, 4L, 4L), Question.3.2 = c(2L,
NA, 1L, 1L, 2L, 2L, 1L, 4L, 3L, 1L, 1L, 1L, 2L, 2L, 1L), Question.4.1 = c(3L,
2L, 5L, 2L, 5L, 5L, 5L, 3L, 5L, 5L, 5L, 5L, 4L, 5L, 2L), Question.4.2 = c(2L,
2L, 1L, 2L, 2L, 1L, 2L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 4L), Question.5.1 = c(5L,
3L, 5L, 3L, 4L, 4L, 5L, 3L, 5L, 5L, 5L, 5L, 5L, 4L, 4L), Question.5.2 = c(2L,
2L, 1L, 1L, 3L, 2L, 1L, 3L, 4L, 1L, 1L, 1L, 1L, 1L, 1L), Question.6.1 = c(5L,
2L, 2L, 2L, 3L, 2L, 3L, 1L, 3L, 3L, 5L, 4L, 3L, 3L, 1L), Question.6.2 = c(2L,
3L, 2L, 1L, 2L, 3L, 3L, 3L, 3L, 2L, 1L, 1L, 2L, 2L, 1L), Question.7.1 = c(5L,
2L, 5L, 5L, 5L, 3L, 5L, 5L, 2L, 4L, 5L, 5L, 5L, 4L, 5L), Question.7.2 = c(1L,
4L, 1L, 1L, 2L, 2L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L), Question.8.1 = c(4L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), Question.8.2 = c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Question.9.1 = c(5L,
3L, 5L, 4L, 4L, 5L, 5L, 5L, 4L, 5L, 5L, 5L, 5L, 4L, 3L), Question.9.2 = c(1L,
1L, 1L, 2L, 2L, 1L, 2L, 1L, 4L, 2L, 1L, 2L, 2L, 1L, 2L), AQ.1 = c(5L,
5L, 5L, 1L, 3L, 5L, 5L, 5L, 5L, 2L, 2L, 2L, 5L, 5L, 3L), AQ.2 = c(2L,
5L, 2L, 1L, 2L, 5L, 2L, 1L, 5L, 1L, 1L, 4L, 2L, 3L, 3L), Task.1 = c(5L,
2L, 5L, 1L, 4L, 5L, 5L, 4L, 4L, 5L, 5L, 4L, 5L, 5L, 5L), Task.2 = c(4L,
3L, 5L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), Task.3 = c(4L,
3L, 4L, 1L, 3L, 5L, 4L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L), Task.4 = c(5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), Task.5 = c(5L,
4L, 5L, 4L, 4L, 5L, 4L, 5L, 4L, 5L, 5L, 5L, 5L, 5L, 4L), GQ.1 = c(4L,
2L, 2L, 5L, 4L, 4L, 5L, 4L, 5L, 5L, 5L, 4L, 4L, 5L, 4L), GQ.2 = c(4L,
4L, 4L, 5L, 5L, 4L, 4L, 3L, 3L, 3L, 5L, 5L, 5L, 4L, 3L), GQ.3 = c(5L,
3L, 2L, 5L, 3L, 5L, 5L, 5L, 4L, 5L, 5L, 5L, 4L, 4L, 4L), GQ.4 = c(5L,
2L, 1L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 5L, 5L, 4L, 4L, 1L), GQ.5 = c(4L,
3L, 4L, 5L, 5L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 4L, 3L), GQ.6 = c(2L,
2L, 1L, 1L, 2L, 1L, 4L, 1L, 4L, 5L, 5L, 1L, 5L, 1L, 5L), GQ.7 = c(4L,
5L, 5L, 5L, 4L, 2L, 3L, 5L, 3L, 5L, 5L, 2L, 5L, 3L, 2L), GQ.8 = c(2L,
4L, 3L, 2L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L), GQ.9 = c(3L,
5L, 2L, 3L, 4L, 4L, 5L, 3L, 4L, 4L, 3L, 3L, 4L, 2L, 2L), GQ.10 = c(3L,
4L, 1L, 2L, 3L, 4L, 5L, 5L, 5L, 5L, 4L, 4L, 5L, 5L, 2L), Feature.1 = c(4L,
4L, 2L, 3L, 4L, 4L, 5L, 5L, 4L, 5L, 5L, 4L, 5L, 3L, 4L), Feature.2 = c(4L,
4L, 2L, 1L, 5L, 4L, 5L, 5L, 5L, 4L, 4L, 3L, 5L, 3L, 2L), Feature.3 = c(3L,
2L, 1L, 2L, 5L, 5L, 2L, 4L, 2L, 4L, 4L, 5L, 2L, 4L, 2L), Feature.4 = c(3L,
3L, 3L, 4L, 3L, 4L, 5L, 5L, 4L, 4L, 4L, 3L, 4L, 3L, 3L), Feature.5 = c(2L,
2L, 3L, 3L, 4L, 3L, 4L, 4L, 2L, 4L, 3L, 4L, 5L, 3L, 1L), Feature.6 = c(5L,
5L, 1L, 1L, 5L, 5L, 5L, 4L, 4L, 5L, 5L, 5L, 5L, 4L, 4L), Feature.7 = c(5L,
3L, 2L, 5L, 4L, 5L, 3L, 5L, 4L, 5L, 5L, 5L, 5L, 4L, 4L)), .Names = c("Number",
"Question.1.1", "Question.1.2", "Question.2.1", "Question.2.2",
"Question.3.1", "Question.3.2", "Question.4.1", "Question.4.2",
"Question.5.1", "Question.5.2", "Question.6.1", "Question.6.2",
"Question.7.1", "Question.7.2", "Question.8.1", "Question.8.2",
"Question.9.1", "Question.9.2", "AQ.1", "AQ.2", "Task.1", "Task.2",
"Task.3", "Task.4", "Task.5", "GQ.1", "GQ.2", "GQ.3", "GQ.4",
"GQ.5", "GQ.6", "GQ.7", "GQ.8", "GQ.9", "GQ.10", "Feature.1",
"Feature.2", "Feature.3", "Feature.4", "Feature.5", "Feature.6",
"Feature.7"), class = "data.frame", row.names = c(NA, -15L))
OriginalL'auteur | 2011-03-27
Vous devez vous connecter pour publier un commentaire.
J'ai peut-être mal compris le problème... mais pourquoi ne pas simplement d'exécuter
cor
sur le bloc de données?Par exemple:
Vous pouvez même
Si vous avez juste besoin de certaines valeurs de corrélations viens de mettre le résultat de corr dans une variable et tirez sur les résultats dont vous avez besoin.
Par exemple, nous voulons que la corrélation de la colonne 2, avec des colonnes 5 à 10 nous:
Merci. print(cor(données)) est un travail, mais si je dtry pour l'afficher en tant qu'image, je ne vois pas toutes les valeurs sur l'image..
Je l'ai vu moi-même. Le problème est que cette variable n'a aucune variation. Qui est, il a toujours la valeur 2...
Exactement, en fait, vous verrez un message d'avertissement lorsque vous appelez
cor
, en disant: "l'écart-type est de 0". Voir aussi: stackoverflow.com/questions/3798998/...comme le coefficient de corrélation est calculé en divisant par l'écart type, voir par exemple sur Wikipédia (en.wikipedia.org/wiki/Correlation_and_dependence)
OriginalL'auteur nico
Sous-ensemble de l'ensemble de données de façon explicite et exécuter la corrélation de commande sur ce jeu de données. En supposant que les variables sont classées correctement, essayez quelque chose comme ceci:
Si elles ne sont pas ordonnées, vous aurez juste besoin de les commander ou de nommer les variables entre guillemets à la place. E. g.:
Pouvez-vous nous donner un morceau de réel jeu de données. Sous-ensemble (couper des lignes), et coller la sortie de dput(dat)
J'ai édité la question et posté mon dataset
Il manque des données là-bas. Lire ?cor de trouver une option qui gère les valeurs manquantes (par exemple, Toutes les observations, ou en cas sage). Aussi, assurez-vous que toutes vos variables sont d'un bon type (par exemple, Numérique ou entier). Coller votre jeu de données est également beaucoup moins utile que de coller le dput() résultat depuis th e
J'ai une valeur manquante. Ok j'ai changé de nouveau la question et utilisé dput()
OriginalL'auteur Vincent
Utilisation
subset
commande:Ou de l'utilisation
psych
paquet etcorr.test
fonction:OriginalL'auteur aL3xa
La question semble motivé par la surcharge d'information que les résultats de l'exécution de corr sur l'ensemble du dataframe. Je n'ai pas utilisé beaucoup, mais le package plyr par le Hadley Wickham de ggplot renommée semble une des solutions élégantes à la. et de la gestion de la sortie.
OriginalL'auteur N Brouwer