我正在使用data.table包,并且有一个数据表dt
,其中有两列:result
和moves
。我想获取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%
的命令?
答案 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
的实际值。