使用set()提高效率以更新data.table所包含的值当列的顺序发生变化时,我遇到了问题。因此,为了防止我使用变通方法来匹配列名而不是列位置。 我想知道是否有更好的方法来解决集合查询的j部分中的列。
DT <- as.data.table(cbind( Period = 1:10,
Col.Name=NA))
set(DT, i = 1L , j = as.integer(match("Col.Name",names(DT))), value = 0)
set(DT, i = 3L , j = 2L, value = 0)
所以我想询问是否有针对此的data.table解决方法,也许是对已有的colnames进行快速匹配。
答案 0 :(得分:1)
我们可以直接在&#39; j&#39;
中使用列名set(DT, i = 1L , j = "Col.Name", value = 0)
DT
# Period Col.Name
# 1: 1 0
# 2: 2 NA
# 3: 3 NA
# 4: 4 NA
# 5: 5 NA
# 6: 6 NA
# 7: 7 NA
# 8: 8 NA
# 9: 9 NA
#10: 10 NA