2017-10-16 2 views
-2

j'ai une trame de données de ce qui suit:la création d'un vecteur de valeurs d'éléments plutôt que de 1 'élément en R

> head(casted) 
    ID nobs sulfate nitrate 
    1 1 117 3.880701 0.5481368 
    2 2 1041 4.460811 0.9474492 
    3 3 243 4.327613 0.6585144 
    4 4 474 4.214956 0.8701622 
    5 5 402 4.210072 1.0939005 
    6 6 228 4.102132 0.5206404 

je voudrais ajouter une colonne « cor » avec qui utilise le cor() sur le sulfate et nitrate par colonne ID, mais quand je le code suivant, je viens obtenir 1 valeur peuplant la colonne entière:

casted$cor <- cor(casted$sulfate, casted$nitrate) 
    > head(casted) 
    ID nobs sulfate nitrate  cor 
1 1 117 3.880701 0.5481368 0.00940941 
2 2 1041 4.460811 0.9474492 0.00940941 
3 3 243 4.327613 0.6585144 0.00940941 
4 4 474 4.214956 0.8701622 0.00940941 
5 5 402 4.210072 1.0939005 0.00940941 
6 6 228 4.102132 0.5206404 0.00940941 

Je sais que je fais quelque chose de mal, mais je peux ne peux toujours pas comprendre.

Merci! Meera

+1

Vous ne pouvez pas trouver la corrélation de deux nombres, vous avez besoin de deux _vectors_. Ainsi, 'cor (casted $ sulfate, casted $ nitrate)' vous donne correctement un nombre, "la corrélation entre le' sulfate' et 'nitrate' _vectors_. – useR

Répondre

1

d'abord vous devriez savoir ce qu'est une corrélation. La corrélation est une méthode statistique pour trouver la relation entre deux échantillons. Donc, pour calculer la corrélation, vous devez avoir deux séries au lieu de deux nombres. Par exemple, nous ne pouvons pas dire la corrélation entre 1 et 2 parce que nous n'avons pas assez d'informations ici, ou nous pouvons dire que nous ne pouvons pas créer une matrice de covariance basée sur deux nombres. Ce que vous avez fait est juste, la colonne cor est la corrélation entre la colonne de sulfate et la colonne de nitrate. Le calcul utilise chaque nombre dans deux colonnes, donc il ne donnera qu'un seul résultat.