假设这是我的数据,它只是一个样本,而不是原始数据.
dark = data.table(cake = c(1, 2, 3, 4, 5, 6, 7, "c1", "c1", "c1", "c2", "c2", "c3", "c3", "c3", "c3"), note = c("a", "b", "c", "d", "e", "f", "g", "h", "h", "i", "j", "j", "k", "l", "m", "m"), walk = c(183, 789, 753, 130, 126, 44, 325, 710, 307, 264, 708, 769, 742, 559, 181, 138))
road <- data.table(rab = c(0, 10, 50, 100, 120, 150, 160, 200, 400, 450, 550, 560, 700, 800, 900), cat = c("t",5,7,"y","t",1,2,4,"t","y","u","u","u",6,7))
这是一件需要做的事情.
dark[road,"menti" :=.(i.cat) , on = .(walk >= rab) ]
我对这个代码非常满意.这个很好用.
现在的问题是,如果我try 对列walk
进行动态引用,代码会抛出错误.
例如,下面的两个代码都不能运行.
dark[road,"menti" :=.(i.cat) , on = .(get(fromexcel) >= rab) ]
dark[road,"menti" :=.(i.cat) , on = .(eval(parse(text = fromexcel)) >= rab) ]
这是我目前使用的fromexcel
的代码.
> library(openxlsx)
> fromexcel<-read.xlsx(xlsxFile = "//dfgygsad/Book1.xlsx",sheet = "Sheet2",namedRegion = "field",colNames = FALSE)[,1]
> fromexcel
[1] "walk"
错误是
Error in colnamesInt(x, names(on), check_dups = FALSE) :
argument specifying columns specify non existing column(s): cols[1]='get(fromexcel)'
如果您的答案可以在不更改代码的情况下解决这个问题,而只是让这个动态参考起作用,我将不胜感激.