calculer la moyenne de plusieurs colonnes de données.cadre
Demandais juste si il est possible de calculer signifie pour plusieurs colonnes en utilisant simplement la moyenne de la fonction
par exemple
mean(iris[,1])
est possible, mais pas
mean(iris[,1:4])
essayé:
mean(iris[,c(1:4)])
ai ce message d'erreur:
Message d'avertissement: Dans la moyenne.par défaut(iris[, 1:4]) : l'argument n'est pas
numérique ou logique: le retour de NA
Je sais que je peux utiliser
lapply(iris[,1:4],moyenne)
ou
sapply(iris[,1:4],moyenne)
- Que diriez -
colMeans(iris[,1:4])
. En prenant la moyenne des données.cadre a été désapprouvée. Je ne suis pas sûr pourquoi vous devriez que le travail lorsque vous savez déjà à propos de lasapply/lapply
solutions. - Utilisation
?colMeans
ou unapply
approche, mais peut-être que pour une telle question, le mieux serait d'avoir une recherche de stackoverflow.
Vous devez vous connecter pour publier un commentaire.
Essayer
colMeans
:Mais la colonne doit être numérique. Vous pouvez ajouter un test pour il pour de plus grands ensembles de données.
De référence
Semble long pour
dplyr
etdata.table
. Peut-être que quelqu'un peut reproduire les résultats de véracité.Données
colMeans(Filter(is.numeric,iris))
Avec
sapply
+Filter
:Avec dplyr:
Avec des données.tableau:
iris %>% summarise_each(funs(mean), -Species)
Votre solution ci-dessus ne fonctionne en supposant que les colonnes sont dans la bonne est.format numérique. Voir exemple ci-dessous:
data.frame
et il n'y a pas une méthode pour utiliser la moyenne sur un ensemble de données.cadre. Votre exemple (sorte de) œuvres que vous pouvez prendre la moyenne d'unmatrix
(class(mydata)
): mais ça donne une moyenne globale plutôt que par colonne.