使用多个数据帧的第一行的第一个元素创建箱图

时间:2015-05-27 09:32:48

标签: r boxplot lapply

我有一个数据框列表。每个数据帧有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中数据帧的行。

1 个答案:

答案 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)