在R中,我可以使用数据表来更新数据框中的值,其中列名包含白色吗?

xlpyo6sf  于 2023-05-26  发布在  其他
关注(0)|答案(1)|浏览(135)

我试图使用data table更新列中的几个值,但是我必须使用重命名列名为没有白色的方法,如下所示。这是否可以做到,而不必重命名我的列名来删除空白?

In <- In %>%
  rename(
    duty_av='AV Duty Rate',
    duty_spec='Specific Duty Rate',
    duty_nature='Duty Nature'
  )

setDT(In)
setDT(trqs)
In[trqs, on=c("TL","TLS"),duty_av:=i.duty_av]
In[trqs, on=c("TL","TLS"),duty_spec:=i.duty_spec]
In[trqs, on=c("TL","TLS"),duty_nature:=i.duty_nature]

In <- In %>%
  rename(
    'AV Duty Rate'=duty_av,
    'Specific Duty Rate'=duty_spec,
    'Duty Nature'=duty_nature
  )
mlnl4t2r

mlnl4t2r1#

是的,可以更新列中的值,而不必重命名列名来删除空白。实现此目的的一种方法是,在代码中引用列名时,在列名周围使用反引号(`)和空格。这使您可以在执行所需更新时保留原始列名
试试这个:

library(data.table)


setDT(In)
setDT(trqs)

# Update values 
In[trqs, on = c("TL", "TLS"), `AV Duty Rate` := i.`AV Duty Rate`]
In[trqs, on = c("TL", "TLS"), `Specific Duty Rate` := i.`Specific Duty Rate`]
In[trqs, on = c("TL", "TLS"), `Duty Nature` := i.`Duty Nature`]

相关问题