我创建了一个空数据表dt
,其中包含id
,begin
和end
列。
library(data.table)
dt <- data.table(id=numeric(), begin=numeric(),end=numeric())
我尝试将值1添加到列id
的第一行。
dt$id[1] <- 1
但它的价值仍为NA
。我不知道出了什么问题。
dt$id[1]
# [1] NA
答案 0 :(得分:1)
选项1:使用rbind()
。默认为rbindlist()
,这允许我们使用fill = TRUE
。在我们想要仅为一个变量添加许多值的情况下,它具有简单的优点。
rbind(dt, list(id = 1), fill = TRUE)
# id begin end
# 1: 1 NA NA
rbind(dt, list(id = 1:4), fill = TRUE)
# id begin end
# 1: 1 NA NA
# 2: 2 NA NA
# 3: 3 NA NA
# 4: 4 NA NA
选项2 :使用NA
创建一行dt[1]
,然后将{1}分配给id
。这里的问题是我们也必须命名其他列。如果我们有很多列,这可能没用。
dt[1, .(id = 1, begin, end)]
# id begin end
# 1: 1 NA NA
答案 1 :(得分:1)
您可以使用:rbind(dt, list(1, NA, NA))