我试图找出如何将data.frame或data.table添加到列表中的第一个位置
理想情况下,我希望列表的结构如下:
4个列表
$:'data.frame':1个obs。共有3个变量:
..$a:num 2
..$b:num 1
..$c:num 3
$d:num4
$e:num 5
$f:num 6
注意data.frame是列表结构中的一个对象
问题是我需要在创建列表后将数据框添加到列表中,并且数据框必须是列表中的第一个元素。我想使用类似于append
的简单方法来实现这一点,但当我尝试时:
追加(列表(1,2,3),数据帧(a=2,b=1,c=3),后面=0)
我得到一个结构化的列表:
str(附加(列表(1,2,3),数据帧(a=2,b=1,c=3),后面=0))
6人名单
$a:num 2
$b:num 1
$c:num 3
$:num 1
$:num 2
$:num 3
当我试图追加
时,R似乎正在将data.frame强制添加到列表中。我如何防止它这样做?或者,在列表初始创建后,有什么替代方法可以构建此列表,将data.frame插入位置1的列表中
您遇到的问题是,要将数据帧作为单个列表元素放入列表中的任意位置,必须使用list()
对其进行包装。让我们看看
df<;-数据帧(1,2,3)
x<;-as.列表(1:3)
如果我们只是用c()
包装,这就是append()
在引擎盖下所做的,我们得到
c(df)
#$X1
# [1] 1
#
#$X2
# [1] 2
#
#$X3
# [1] 3
但是如果我们将它包装在list()
中,我们将得到所需的包含数据帧的列表元素
列表(df)
# [[1]]
#x1x2x3
# 1 1 2 3
因此,由于x
已经是一个列表,我们需要使用以下构造
c(列表(df),x)##或追加(x,列表(df),0)
# [[1]]
#x1x2x3
# 1 1 2 3
#
# [[2]]
# [1] 1
#
# [[3]]
# [1] 2
#
# [[4]]
# [1] 3