【发布时间】:2018-11-29 14:35:02
【问题描述】:
我发现data.table的逻辑对于以下两个操作不一致:
操作1:
df1<-data.table(a=c(1,2))
list1<-list(c(1,2), 1)
df1[,b:=list1]
#> df1
# a b
#1: 1 1,2
#2: 2 1
操作 2:(data.table 将单例列表视为我提供了一个向量)
df2<-data.table(a=c(1))
list2<-list(c(1,2))
df2[, b:=list2]
#Warning message:
#In `[.data.table`(df2, , `:=`(b, list2)) :
# Supplied 2 items to be assigned to 1 items of column 'b' (1 unused)
#> df2
a b
#1: 1 1
我希望第二种情况的输出是:
# a b
#1: 1 1,2
我可以统一这两种情况:
df1[, b:=list(list1)]
df2[, b:=list(list2)]
这是最好的解决方案吗? data.table 是否没有选项不取消嵌套单例列表?当我使用b:=list(list1) 时,在第一种情况下是否没有额外的性能方面的操作?
【问题讨论】:
标签: r data.table