这是来自Stack Exchange统计部分的转发。我在那里问了这个问题,我被告知在这里提出这个问题。所以在这里。如何组合来自数据框列表的多个盒图?
我有一个数据框的列表。每个数据帧具有相似的结构。每个数据框中只有一列是数字。由于我的数据要求,每个数据帧具有不同的长度是非常重要的。我想创建一个数值的boxplot,分类在另一列的属性。但boxplot应该包含来自所有数据帧的信息。
我希望这是一个明确的问题。我将很快发布样本数据。
这是来自Stack Exchange统计部分的转发。我在那里问了这个问题,我被告知在这里提出这个问题。所以在这里。如何组合来自数据框列表的多个盒图?
我有一个数据框的列表。每个数据帧具有相似的结构。每个数据框中只有一列是数字。由于我的数据要求,每个数据帧具有不同的长度是非常重要的。我想创建一个数值的boxplot,分类在另一列的属性。但boxplot应该包含来自所有数据帧的信息。
我希望这是一个明确的问题。我将很快发布样本数据。
山姆,
我假设这是一个后续行动this问题?也许你的样本数据会更好地说明你需要的细微差别(“分类在另一列的属性”部分),但同样的方法应该在这里工作。
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")
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并行绘制多个数据集。
如果是直接从列表绘制该解决方案将无法工作。 – 2016-03-13 15:43:42
使用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)
难道你不能把这个列表融化吗? – hadley 2011-02-23 20:43:15
@hadley - 的确如此。我之前没有专门使用'melt',所以感谢提示。将相应修改。 – Chase 2011-02-23 20:49:33
确实是的,这是这个问题的后续。感谢您的编辑。 – Sam 2011-02-23 22:17:15