Как вы объединяете несколько боксов из списка фреймов данных? - PullRequest
2 голосов
/ 23 февраля 2011

Это репост из раздела Статистика Stack Exchange.Я задал вопрос там, мне посоветовали задать этот вопрос здесь.Итак, вот оно.

У меня есть список фреймов данных.Каждый фрейм данных имеет похожую структуру.В каждом фрейме данных есть только один столбец, который является числовым.Из-за моих требований к данным важно, чтобы каждый фрейм данных имел разную длину.Я хочу создать коробку из числовых значений, распределенных по атрибутам в другом столбце.Но поле должно содержать информацию из всех фреймов данных.

Надеюсь, это ясный вопрос.Я скоро опубликую образцы данных.

Ответы [ 3 ]

6 голосов
/ 23 февраля 2011

Sam

Я предполагаю, что это продолжение до этого вопроса? Возможно, ваши образцы данных лучше проиллюстрируют нюансы ваших потребностей (часть «классифицировано по атрибутам в другом столбце»), но здесь должен работать тот же подход melting.

library(ggplot2)
library(reshape2)
#Fake data
a <- data.frame(a = rnorm(10))
b <- data.frame(b = rnorm(100))
c <- data.frame(c = rnorm(1000))

#In a list
myList <- list(a,b,c)


#In a melting pot
df <- melt(myList)

#Separate boxplots for each data.frame
qplot(factor(variable), value, data = df, geom = "boxplot")
#All values plotted together as one boxplot
qplot(factor(1), value, data = df, geom = "boxplot")
1 голос
/ 23 февраля 2011
a<-data.frame(c(1,2),c("x","y"))
b<-data.frame(c(3,4,5),c("a","b","c"))
boxplot(c(a[1],b[1]))

С помощью "1" я выбираю нужный столбец из фрейма данных.

Фреймы данных не могут иметь разную длину столбцов (должно иметь одинаковое количество строк для каждого столбца), но вы можете указать boxplot для построения нескольких наборов данных параллельно.

0 голосов
/ 13 марта 2016

Использование функции melt() и базового графика R:

#Fake data
a <- data.frame(a = rnorm(10))
b <- data.frame(b = rnorm(100))
c <- data.frame(c = rnorm(100) + 5)

#In a list
myList <- list(a,b,c)

#In a melting pot
df <- melt(myList)

# plot using base R boxplot function
boxplot(value ~ variable, data = df)
...