0

我正在使用 R 并尝试将一堆函数组装到一个包中。其中一个函数使用包 arules 从数据集中挖掘规则,对它们进行子集化并获取其他兴趣度量。

我对子集它们的行有问题。

rules <- apriori(trainingTrans, parameter = list(support = 0.005, confidence = 0.0, maxlen = 6)  
rulesCases <- subset(rules, subset = rhs %in% "event")

只要我加载了 arules,这些函数就可以在包之外工作,但无论我是否将 arules 设置为 Depends、Imports 或让函数使用 library(arules) 调用它,这些函数都不能在包中工作。显示的错误是“匹配”需要向量参数。我认为 Arules 有自己的 match 版本来解决这个问题,我尝试了 arules::match(rhs,"event"),但我仍然遇到同样的问题。

4

2 回答 2

0

问题是它没有找到正确的 %in% 版本。可能这有效:

rulesCases <- subset(rules, subset = arules::"%in%"(rhs, "event"))

如果您 import ,这应该不是必需arules的,但似乎发生了一些奇怪的事情。我希望这将在未来的 arules 版本中得到解决。

于 2016-03-08T04:21:20.523 回答
0

我的包裹中有同样的问题并且能够修复它:

正如 Michael Hahsler 所注意到的,语法subset(rules, subset = arules::"%in%"(rhs, "event"))强制使用包中的正确版本%in%

rhs不再相关,rules因此需要重新精确使用rules@rhs

所以正确的语法应该是subset(rules, subset = arules::"%in%"(rules@rhs, "event"))

它为我的包裹完成了这项工作,描述文件包含

LinkingTo: arules
Imports: arules

并且没有进一步的用途library(arules)

于 2017-02-07T15:32:31.807 回答