У меня есть список фреймов данных, называемых mylist. Заголовки списка являются имена людей и кадры данных содержат столбцы с данными, связанными с этими именами (дата, рост, вес и т.д.)Boxplot with for 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
Я хочу создать boxplot для каждой из метрик: один boxplot для высоты, один для веса и т. д. И я хочу включить только в каждую метрическую коробку всю информацию о людях. Например, я хочу построить поле для высоты, которое содержит информацию Джона, Сьюзан и т. Д.
Вот моя попытка цикла, но она не работает.
for(s in 3:21) {
boxplot(x=for(i in 1:99){ mylist[[i]][s]}))
}
Привет, ребята, я применил nograpes решение. Хотя код, который он предложил:
ggplot(melted.df,aes(x=name,y=value)) +
geom_boxplot() + facet_grid(variable~.,scales='free')
стеки каждый boxplot друг над другом и, наконец, сюжет не читается, как есть 16 присущи рефлективный, вербальный. Таким образом, хорошая идея - создать 16 разных ящиков, по одному для каждой метрики.
Я искал решения для этого и один, чтобы запустить этот код:
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 раз, каждый раз меняя код для вызова другой показатель (столбец) кадра данных ... но очевидно, что это неэффективно.
У вас есть идеи по созданию цикла for для этого?
Было бы полезно, если бы вы дали нам выход 'dput (MyList)', чтобы мы могли просто вырезать и вставить свои данные в наших сессий. – nograpes
Спасибо, сны! Проблема в том, что данные hughe! он имеет 16 показателей и более 50 000 наблюдений. – user2794659
Ну, есть [хороший FAQ] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example), который показывает вам некоторые методы по сокращению ваших данных для вопросов. Но, коротко, вы можете использовать 'dput (head (mylist))', и это даст нам только первые шесть в вашем списке. – nograpes