2017-04-19 2 views
-1

J'ai la coupe d'une trame d'un data.set. Le problème est que je ne peux pas calculer la valeur moyenne de Var1, car elle n'est probablement pas numérique.R: Calcul de mean() à partir d'une liste

Comment procéder?

mean(c1[, "Var1"]) 
mean(c1$Var1) 

ne fonctionne pas ...

> c1["Var1"] 
     Var1 
116 661574 
128 671194 
331 847073 
454 933425 
652 1113353 
761 1220950 
764 1223786 
978 1580029 
1150 1987981 
1367 2900735 
1380 2976310 
1383 3002309 
1404 3149761 
1408 3178648 
1439 3431430 
1488 3754229 
1506 3910297 
> mean(c1[, "Var1"]) 
[1] NA 
+1

Bienvenue sur Stack Overflow! S'il vous plaît lire les informations sur [comment poser une bonne question] (http://stackoverflow.com/help/how-to-ask) et comment donner un [exemple reproductible] (http://stackoverflow.com/questions/ 5963269). Cela rendra beaucoup plus facile pour les autres de vous aider. – zx8754

+0

Tous les objets semblent être en numérique. Veuillez essayer 'mean (c1 $ Var1)' –

+0

Essayez 'mean (c1 [," Var1 "])'. – zx8754

Répondre

1

Le type de données des données dans la colonne est numérique et la moyenne de la colonne que vous voulez également un numérique du type de données. L'erreur que vous obtenez: Dans mean.default (c1 ["var1"]): l'argument n'est pas numérique ou logique: renvoie NA. Cela signifie que la sortie que vous obtenez lorsque vous utilisez des accolades simples [] n'est pas numérique. Les accolades carrées simples retournent toujours des données avec le même type de données qui dans ce cas serait une liste(). Mais ce que vous voulez, c'est mean() avec un type de données numérique. Essayez mean(c1[["var1"]]) La meilleure façon d'y parvenir serait d'utiliser des index de colonnes. J'espère que cela t'aides!

Example.

+0

Cela ne fonctionne pas:/Puis-je en quelque sorte isoler le Var1 , sans les chiffres de gauche? – Christina

2

afin que vos chiffres sont des facteurs.

essayer

mean(as.numeric(levels(c1$Var1))) 
+0

Oui cela a fonctionné! Merci! – Christina

+0

Cela ne fonctionnera que si toutes les valeurs dans la colonne sont uniques. –