此警告消息的作用是什么;“用剩余物回收”;你的意思是R?

此警告消息的作用是什么;“用剩余物回收”;你的意思是R?,r,dplyr,data.table,R,Dplyr,Data.table,警告信息: 在as.data.table.list中(x,keep.rownames=keep.rownames,check.names=check.names,: 项目2有1650197行,但最长的项目有1667524行;与剩余部分一起循环。当R被给予某种形式的列表输入以产生某种形式的列表输出,但输入和输出长度不匹配时,会出现此警告。在这种情况下,R会重复并重新使用适当的较短列表 请参阅文档:“如果提供了列表,则每个元素将转换为data.table中的一列,并自动回收较短的元素。” 但是,如果

警告信息: 在as.data.table.list中(x,keep.rownames=keep.rownames,check.names=check.names,:
项目2有1650197行,但最长的项目有1667524行;与剩余部分一起循环。

当R被给予某种形式的列表输入以产生某种形式的列表输出,但输入和输出长度不匹配时,会出现此警告。在这种情况下,R会重复并重新使用适当的较短列表

请参阅文档:“如果提供了列表,则每个元素将转换为data.table中的一列,并自动回收较短的元素。”

但是,如果较长的列表不是较短列表长度的倍数,则长度列表中的差异不太可能是故意造成的,因此发出此警告

一些例子:

>库(data.table)
>示例1=列表(x=c(1,2,3,4,5,6),y=3)
>as.data.table(示例1)
xy
1: 1 3
2: 2 3
3: 3 3
4: 4 3
5: 5 3
6: 6 3
>示例2=列表(x=c(1,2,3,4,5,6),y=c('a','b'))
>as.data.table(示例2)
xy
1:1 a
2:2 b
3:3 a
4:4 b
5:5 a
6:6 b
在这两个示例中,
x
y
列表的长度不同,因此重复了
y
列表。这不会产生警告,因为
y
是长度1或2,是长度6的
x
的倍数

>示例3=list(x=c(1,2,3,4,5,6),y=c('a','b','c','d'))
>as.data.table(示例3)
xy
1:1 a
2:2 b
3:3 c
4:4d
5:5 a
6:6 b
警告信息:
在as.data.table.list中(示例3):
项目2有4行,但最长的项目有6行;与剩余部分一起回收。
但是这个示例
x
的长度是6,
y
的长度是4。因此,在创建数据表时,只有
y
的前两个术语被重复。R给出了一个警告,因为
y
中的每个术语都被重复使用了相同的次数


在您的示例中,长度不是6和4,而是1650197和1667524。由于您不太可能(但可能)重复较短列的前17327个条目(1667524-1650197),因此R会向您发出警告,提示您检查输入列。

太棒了!这就解释了。.谢谢!干杯!