r-如何在另一个data.table的基础上创建一个数据.table,其中一行填充NA



假设我有以下data.table(但可以将其视为一个表,其中包含许多名称动态变化的列)

DT <- data.table(a=rep(1L,3),b=rep(1.32,3),d=rep("qwe",3))
DT
   a    b   d
1: 1 1.32 qwe
2: 1 1.32 qwe
3: 1 1.32 qwe

现在假设我想用NAs创建一行,然后用DT创建rbindlist

首次尝试(不起作用)

DT1 <- DT[1][,colnames(DT):=NA]
DT1
    a  b  d
1: NA NA NA
rbindlist(list(DT1,DT))
      a    b  d
1:   NA   NA NA
2: TRUE TRUE NA
3: TRUE TRUE NA
4: TRUE TRUE NA

这不起作用,因为DT1在调用:=NA时被强制转换(这似乎是一种叫做plonking的东西,因为如果你在:= RHS类型将覆盖LHS时提供一个完整的列…)

那么,问题是,我如何提取data.table的一行并用NA填充它,或者创建一个data.table,用与另一个具有相同列名和列类型的NA填充

有很多方法可以做到这一点,这里有一种:

rbind(DT[NA], DT)
#    a    b   d
#1: NA   NA  NA
#2:  1 1.32 qwe
#3:  1 1.32 qwe
#4:  1 1.32 qwe

最新更新