无法为空数据表

时间:2017-10-14 00:41:45

标签: r dataframe datatable

我创建了一个空数据表dt,其中包含idbeginend列。

library(data.table)
dt <- data.table(id=numeric(), begin=numeric(),end=numeric())

我尝试将值1添加到列id的第一行。

dt$id[1] <- 1

但它的价值仍为NA。我不知道出了什么问题。

dt$id[1]
# [1] NA

2 个答案:

答案 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))