R使用do.call将列表中存储的数据转换为单个数据帧
示例
如果您将数据存储在列表中,并且想要将此列表转换为数据框,则此do.call功能是实现此目的的简便方法。但是,重要的是所有列表元素必须具有相同的长度,以防止意外回收值。
dataList <- list(1:3,4:6,7:9) dataList # [[1]] # [1] 1 2 3 # # [[2]] # [1] 4 5 6 # # [[3]] # [1] 7 8 9 dataframe <- data.frame(do.call(rbind, dataList)) dataframe # X1 X2 X3 # 1 1 2 3 # 2 4 5 6 # 3 7 8 9
如果您的列表由数据框本身组成,它也可以使用。
dataframeList <- list(data.frame(a = 1:2, b = 1:2, c = 1:2),
data.frame(a = 3:4, b = 3:4, c = 3:4))
dataframeList
# [[1]]
# a b c
# 1 1 1 1
# 2 2 2 2
# [[2]]
# a b c
# 1 3 3 3
# 2 4 4 4
dataframe <- do.call(rbind, dataframeList)
dataframe
# a b c
# 1 1 1 1
# 2 2 2 2
# 3 3 3 3
# 4 4 4 4