gpt4 book ai didi

r - 使用大于和小于列名中的符号连接 data.tables 时出现问题

转载 作者:行者123 更新时间:2023-12-05 02:40:30 25 4
gpt4 key购买 nike

当列名有 >(大于)或 <(小于)符号时,我尝试加入这些列,带有符号的列被修剪,我得到这样的错误:

colnamesInt(x, names(on), check_dups = FALSE) 错误:指定列的参数指定不存在的列:cols[1]='COLUMN WITH'

重现问题的代码

library(data.table)

table_a <- data.table(
`COLUMN WITH >FAILS` = character(),
BLA = integer(),
BLO = integer()

)

table_b <- data.table(
`COLUMN WITH >FAILS` = character(),
BLA = integer(),
BLI = integer(),
BLU = integer()

)

on = setdiff(names(table_a), c("BLA", "BLU", "BLO"))

table_a[table_b, on = on]

我的临时解决方法是替换连接前的特殊字符,并将原始列名放在连接后,它有效但看起来不太优雅。我不知道这是否是一个已知问题,我还没有找到任何关于此的文档。你能想出更好的方法来解决这个问题吗?

最佳答案

引号内的反引号允许在连接中使用保留符号:

table_a[table_b, on = "`COLUMN WITH >FAILS`"]

Empty data.table (0 rows and 6 cols): COLUMN WITH >FAILS,BLA,BLO,i.BLA,BLI,BLU

或者更一般地说:

table_a[table_b, on = paste0("`",on,"`")]

Empty data.table (0 rows and 6 cols): COLUMN WITH >FAILS,BLA,BLO,i.BLA,BLI,BLU

关于r - 使用大于和小于列名中的符号连接 data.tables 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68541342/

25 4 0