如何创建一个data.table,其中一行基于另一个data.table填充NA

时间:2013-09-04 07:34:38

标签: r data.table

说我有以下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具有与另一个相同的列名和列类型< / p>

1 个答案:

答案 0 :(得分:5)

有很多方法可以做到这一点,其中之一是:

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