首页 > 解决方案 > R将多个数据表附加到列表

问题描述

我需要将 data.tables 附加到一个空列表中,以便通过调用索引获得整个数据表。我现在得到的是附加数据表的列列表,以便在特定索引而不是获取数据表中从其中一个表中获取列。

empty_list <- list()
dt<-data.table(c(1,2,3,4,5,6), c(4,5,6,7,8,9))
empty_list <- append(empty_list, dt)
empty_list[1]

标签: rlistdata.tableappend

解决方案


您想附加到empty_list另一个list(...)对象。所以:

empty_list <- list()
dt<-data.table(c(1,2,3,4,5,6), c(4,5,6,7,8,9))
empty_list <- append(empty_list, list(dt))
empty_list[1]
#[[1]]
#   V1 V2
#1:  1  4
#2:  2  5
#3:  3  6
#4:  4  7
#5:  5  8
#6:  6  9

作为一个简单的代表性示例,认为data.table/data.frame真的只是一个花哨的list

is.list(data.table(3,4))
#[1] TRUE

str(append(list(1,2), list(3,4)))
#List of 4
# $ : num 1
# $ : num 2
# $ : num 3
# $ : num 4

str(append(list(1,2), list(list(3,4))))
#List of 3
# $ : num 1
# $ : num 2
# $ :List of 2
#  ..$ : num 3
#  ..$ : num 4

推荐阅读