通过mapply从两个向量列表中创建数据帧列表

时间:2015-04-07 20:30:24

标签: r

我期待两个data.frame的列表而不是4个向量的列表。我做错了什么?

list1 <- list(1:3, 5:6)
list2 <- list(7:9, 10:11)
result <- mapply((function(x, y) data.frame(id = x, value = y)),
       list1, list2)
str(result)
# List of 4
# $ : int [1:3] 1 2 3
# $ : int [1:3] 7 8 9
# $ : int [1:2] 5 6
# $ : int [1:2] 10 11
# - attr(*, "dim")= int [1:2] 2 2
# - attr(*, "dimnames")=List of 2
# ..$ : chr [1:2] "id" "value"
# ..$ : NULL

1 个答案:

答案 0 :(得分:1)

您可以使用SIMPLIFY=FALSE中的mapply来保存list结构

mapply(function(x, y) data.frame(id = x, value = y),
                    list1, list2, SIMPLIFY=FALSE)

或使用Map

Map(function(x,y) data.frame(id=x, value=y), list1, list2)