这是Stack Exchange统计部分的转贴。我曾在那里问过这个问题,我建议在这里提出这个问题。所以就是这样。
我有一个数据框列表。每个数据帧具有类似的结构。每个数据框中只有一列是数字的。由于我的数据要求,每个数据帧的长度必须不同。我想创建一个数值的箱线图,按照另一列中的属性进行分类。但是箱线图应该包括来自所有数据帧的信息。
我希望这是一个明确的问题。我很快就会发布样本数据。
答案 0 :(得分:6)
山姆,
我认为这是对this问题的跟进?也许您的样本数据会更好地说明您的需求的细微差别(“在另一列中分类属性”部分),但同样的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 :(得分:1)
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并行绘制多个数据集。
答案 2 :(得分:0)
使用melt()
函数和基本R boxplot:
#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)