2017-10-14 66 views
1

我創建了一個空數據表dt,其中列id,beginend無法將數值添加到空數據表中

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

我試圖給列id的第一行添加值1。

dt$id[1] <- 1 

但它的值仍然是NA。我不知道什麼是錯的。

dt$id[1] 
# [1] NA 

回答

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:創建的NAdt[1]行然後分配1至id。這裏的問題是我們必須命名其他列。如果我們有很多列,這可能沒有用處。

dt[1, .(id = 1, begin, end)] 
# id begin end 
# 1: 1 NA NA 
1

您可以使用:rbind(dt, list(1, NA, NA))