在R中使用data.table更新含空格列名的数据框值无需重命名可行吗?
无需重命名直接更新带空格列名的方法
当然可以不用来回重命名,直接操作带空格的列名就行。data.table支持用反引号``包裹含空格的列名,还能一次性批量更新多列,简化你的代码:
# 将数据框转为data.table(如果还没转的话) setDT(In) setDT(trqs) # 一次性完成多列更新,直接使用带空格的原列名 In[trqs, on = c("TL", "TLS"), `:=`( `AV Duty Rate` = i.`AV Duty Rate`, `Specific Duty Rate` = i.`Specific Duty Rate`, `Duty Nature` = i.`Duty Nature` )]
关键说明:
- 用反引号``把带空格的列名括起来,data.table就能正确识别这类特殊列名
- 借助
:=的批量赋值语法,只需要写一次join条件(on = c("TL", "TLS"))就能完成多列更新,比原来重复三次join的代码更高效 - 右边的
i.前缀代表取关联表trqs中的对应列,和你原来的更新逻辑完全一致
内容的提问来源于stack exchange,提问作者melange164
相关产品推荐
相关产品推荐

