2

假设我有以下内容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

现在说我想用 DT 创建NAs一行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 时提供完整列......)

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

4

1 回答 1

6

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

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
于 2013-09-04T07:45:11.330 回答