我有一个数据框列表。每个数据帧有6行。我想创建6个箱图。 第一个框图应该采用第一列的第一行的值。 第二框图应采用第一列的第二行等的值。
我想最终得到这样的结果:example image
每行应该是水平轴上的一个箱线图。
现在我已经开始循环播放,但我认为这不是可行的方法:
for (counter in seq(from = 1, to = wins)) {
res <- (lapply(mylist, function(x) x[counter,1]))
boxplot(res)
}
变量mylist
包含数据帧。我已经使用lapply
来获得第一个/第二个/等。根据{{1}}变量在所有数据帧上排行元素。但是,我认为我还必须避免循环,但这需要一个'更好'counter
,它也会遍历lapply
中数据帧的行。
答案 0 :(得分:1)
也许不是你想要的一个班轮,但这对我有用
# Add a column to each data frame with the row index
for (i in seq_along(mylist)) {
mylist[[i]]$rowID <- 1:nrow(mylist[[i]])
}
# Stick all the data frames into one single data frame
allData <- do.call(rbind, mylist)
# Split the first column based on rowID
boxList <- split(allData[,1], allData$rowID)
# boxplot likes a list
boxplot(boxList)