在 rpy2 中使用 arules 包中的子集
Using subset from arules package in rpy2
使用 arules 包中的先验算法很容易:
import rpy2.interactive as r
arules = r.packages.importr("arules")
from rpy2.robjects.vectors import ListVector
od = OrderedDict()
od["supp"] = 0.0005
od["conf"] = 0.7
od["target"] = 'rules'
result = ListVector(od)
my_rules = arules.apriori(dataset, parameter=result)
但是,先验子集在子集参数中使用不同的格式:
rules.sub <- subset(rules, subset = rhs %in% "marital-status=Never-married" & lift > 2)
rpy2可以使用这个子集函数吗?
如果 subset
在 R 包 arules
中被(重新)定义,从 importr
获得的对象 arules
将包含它。在您的 python 代码中,这将类似于 arules.subset
.
参数 subset
的情况略有不同,因为它是一个 R 表达式。可以有几种方法来解决这个问题。其中之一是将其包装在一个特别的 R 函数中。
from rpy2.robjects import r
def mysubset(rules, subset_str):
return r("function(rules) { arules::subset(rules, subset = %s) }" % \
subset_str)
rules_sub = mysubset(rules,
"rhs %in% "marital-status=Never-married" & lift > 2)
使用 arules 包中的先验算法很容易:
import rpy2.interactive as r
arules = r.packages.importr("arules")
from rpy2.robjects.vectors import ListVector
od = OrderedDict()
od["supp"] = 0.0005
od["conf"] = 0.7
od["target"] = 'rules'
result = ListVector(od)
my_rules = arules.apriori(dataset, parameter=result)
但是,先验子集在子集参数中使用不同的格式:
rules.sub <- subset(rules, subset = rhs %in% "marital-status=Never-married" & lift > 2)
rpy2可以使用这个子集函数吗?
如果 subset
在 R 包 arules
中被(重新)定义,从 importr
获得的对象 arules
将包含它。在您的 python 代码中,这将类似于 arules.subset
.
参数 subset
的情况略有不同,因为它是一个 R 表达式。可以有几种方法来解决这个问题。其中之一是将其包装在一个特别的 R 函数中。
from rpy2.robjects import r
def mysubset(rules, subset_str):
return r("function(rules) { arules::subset(rules, subset = %s) }" % \
subset_str)
rules_sub = mysubset(rules,
"rhs %in% "marital-status=Never-married" & lift > 2)