這是來自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