如何将字符向量中的多个列批量添加到data.table并赋值为NA
实现方案
直接使用data.table原生的批量赋值语法即可,一行代码完成,无需任何循环:
# 初始代码 library(data.table) df <- data.table(iris) new_cols <- c("a", "b", "c") # 批量新增列并赋值为NA df[, (new_cols) := NA]
语法说明
:=是data.table的原地赋值运算符,修改对象不会产生副本,执行效率极高- 将列名向量
new_cols用括号包裹,是为了告知data.table该变量存储的是要操作的列名,而非直接使用名为new_cols的列 - 默认赋值的是逻辑类型的NA,如果需要指定新增列的类型,替换为对应类型的空值即可:
- 整数型列:替换为
NA_integer_ - 字符型列:替换为
NA_character_ - 浮点型列:替换为
NA_real_
- 整数型列:替换为
内容的提问来源于stack exchange,提问作者MLEN
相关产品推荐
相关产品推荐

