R数据表:将%like%与setkey一起使用



我使用的是data.table包,并且有一个包含两列的数据表dtresultmoves。我想得到result是"1-0",moves包含"W1.e4"的次数

nrow(dt[result == "1-0" & moves %like% "W1.e4"])

我正在使用data.table的setkey函数,如下所示:

setkey(dt,result,moves)

然而,现在尝试将上面的命令写如下:

dt[.("1-0", %like% "W1.e4")]

导致错误的结果:

错误:"dt[.("1-0",%like%"中出现意外SPECIAL

在data.table中使用setkey时,应如何编写包含%like%的命令?

正如David所指出的,%like%运算符并不是这样工作的;x %like% y将返回具有与x相同长度的logical向量(检查print(`%like%`)(。

您可以尝试以下方法:

dt[.('1-0', grep('W1.e4', unique(moves), value = TRUE, fixed = TRUE))]

后者将返回包含W1.e4moves的实际

最新更新