说我有以下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>
答案 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