R data.table:将%like%与setkey一起使用

时间:2018-07-25 06:29:12

标签: r data.table

我正在使用data.table包,并且有一个数据表dt,其中有两列:resultmoves。我想获取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%”

中出现意外的特殊提示

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

1 个答案:

答案 0 :(得分:2)

正如David指出的,%like%运算符的工作方式并不完全; x %like% y将返回一个logical向量,其长度与x(检查print(`%like%`))相同。

您可以尝试以下方法:

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

后者将返回moves中包含W1.e4的实际