我是新手,对于data.table不太熟悉,觉得这是个简单的问题,但似乎找不到答案。
我想根据两个我知道名称的列的值来子集化一个表。但我想比较一个我预先不知道的值。也就是说,我想使用变量作为DT[]中i部分的值。但我似乎无法弄清楚如何做到这一点。我所看到的所有内容都是解释如何使用变量用于j(即列名),而不是用于i。
当我只是简单地输入变量名时,例如:
但是两者仍然返回整个表格。
我相信这很简单,但我卡住了。
编辑 我很抱歉之前没有澄清:我想进行二分搜索,因为我需要加速。我知道可以使用==进行向量扫描,但我不想这样做。
我想根据两个我知道名称的列的值来子集化一个表。但我想比较一个我预先不知道的值。也就是说,我想使用变量作为DT[]中i部分的值。但我似乎无法弄清楚如何做到这一点。我所看到的所有内容都是解释如何使用变量用于j(即列名),而不是用于i。
当我只是简单地输入变量名时,例如:
setkey(dtpredictions, colA, colB)
nextweek = dtpredictions[J(uservar, weekvar)]
它返回整个表。尝试应用FAQ 1.6的答案,我尝试了:
nextweek = dtpredictions[J(eval(quote(uservar)), eval(quote(weekvar)))]
and
nextweek = dtpredictions[J(eval(user), eval(week))]
但是两者仍然返回整个表格。
我相信这很简单,但我卡住了。
编辑 我很抱歉之前没有澄清:我想进行二分搜索,因为我需要加速。我知道可以使用==进行向量扫描,但我不想这样做。
uservar
和weekvar
是否为单字符或数字向量。 - Mike.Gahan