我正在使用R,并试图将一堆函数组装成一个包。其中一个函数使用包规则从数据集中挖掘规则,对它们进行子集,并获得其他兴趣度量。
我对它们的子集所在的行有问题。
rules <- apriori(trainingTrans, parameter = list(support = 0.005, confidence = 0.0, maxlen = 6)
rulesCases <- subset(rules, subset = rhs %in% "event")只要我加载了arules,函数就可以在包之外工作,但无论我是将arules设置为Depends、导入还是让函数使用库(Arules)调用它,这些函数都不能在包中工作。显示的错误是'match‘需要向量参数。我想Arules有它自己的match版本来解决这个问题,我尝试过arules::match(rhs,"event"),但是我仍然有同样的问题。
发布于 2016-03-08 12:21:21
问题是它在%中找不到%的正确版本。这可能是可行的:
rulesCases <- subset(rules, subset = arules::"%in%"(rhs, "event"))如果您导入arules,这应该不是必需的,但似乎发生了一些奇怪的事情。我希望这个问题能在arules的未来版本中得到解决。
发布于 2017-02-07 23:32:32
我在我的包中遇到了同样的问题,并且能够解决它:
正如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)。
https://stackoverflow.com/questions/35850576
复制相似问题