J'ai une liste de blocs de données appelée: mylist. En-têtes de la liste des noms de personnes et les trames de données contiennent des colonnes avec des données associées à ces noms (date, taille, poids, etc.)Boxplot avec une boucle for
names(mylist[1])
[1] "John"
names(mylist[2])
[1] "Susan"
mylist[[1]]
[1] name date hight weight ....
John 1950 1.81 78
John 1948 1.60 60
John 1935 1.50 55
mylist[[2]]
[1] name date hight weight ....
Susan 1985 1.40 40 .
Susan 1995 1.45 60
Susan 1990 1.25 40
Je veux créer une boîte à moustaches pour chacun des paramètres: un boxplot pour la taille, un pour le poids, etc. Et je veux inclure juste dans le boxplot de chaque mesure toutes les informations de personnes. Par exemple, je veux une boîte à moustache pour la hauteur qui contient les informations de John, Susan, etc.
Voici ma tentative pour la boucle, mais cela ne fonctionne pas.
for(s in 3:21) {
boxplot(x=for(i in 1:99){ mylist[[i]][s]}))
}
Salut les gars, j'ai appliqué la solution de nograpes. Bien que, le code qu'il a suggéré:
ggplot(melted.df,aes(x=name,y=value)) +
geom_boxplot() + facet_grid(variable~.,scales='free')
piles chaque boxplot dessus de l'autre et, enfin, la parcelle est illisible car il y a 16 boxplots. Ainsi, une bonne idée est de créer 16 boxplots différents, un pour chaque métrique.
J'ai cherché des solutions pour cela et on est d'exécuter ce code:
tomelt<-data.frame(c(daily[1],daily[2],daily[3])) #create a data.frame with variable name, date and the variable to be ploted.
melted.df<-melt(tomelt,id.vars=c('name', 'date')) #convert to long form
ggplot(melted.df,aes(x=name,y=value)) + geom_boxplot() #plot
16 fois, changeant à chaque fois le code pour appeler une autre mesure (colonne) de la trame de données ... mais évidemment que ce n'est pas efficace du tout.
Avez-vous une idée sur la façon de créer une boucle for pour cela?
Il serait utile que vous nous avez donné la sortie de 'dput (mylist)' afin que nous puissions simplement couper et coller vos données dans nos sessions. – nograpes
Merci nograpes! Le problème est que les données sont hughe! il a 16 métriques et plus de 50.000 observations. – user2794659
Eh bien, il y a une [bonne FAQ] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) qui vous montre quelques techniques sur la façon de réduire vos données pour des questions. Mais, brièvement, vous pouvez utiliser 'dput (head (mylist))' et cela ne nous donnera que les six premiers de votre liste. – nograpes