【发布时间】:2023-03-13 17:25:01
【问题描述】:
我是 data.table 的新手,认为这是一个简单的问题,但似乎无法在任何地方找到答案。
我想根据我知道的两列的值对表进行子集化。但我想与一个我事先不知道的值进行比较。也就是说,我想为 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)))]
和
nextweek = dtpredictions[J(eval(user), eval(week))]
但两者仍然返回整个表。
我很确定这很简单,但我被卡住了。
编辑 我很抱歉没有早点澄清:我想做一个二进制搜索,因为我需要加速。我知道我可以使用 == 进行矢量扫描,但我不想这样做。
【问题讨论】:
-
只是想确认
uservar和weekvar是单个字符或数字向量。
标签: r data.table subset