如何在Python cod中使用rpy2将R函数作为参数传递

2024-04-26 06:56:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图为出色的NMF包-https://cran.r-project.org/web/packages/NMF/NMF.pdf制作一个Python接口(因为它比Python选项灵活得多)。到现在为止,一直都还不错。在

我想出了这样的办法:

# Python rpy2
__NMF = importr("NMF")
n_comp_R = robjects.IntVector(n_components)
nmf_ro = self.__NMF.nmf(data, n_comp_R, methods, self.seed, nrun=10)

它就像一个符咒。Methods是我可以使用的可能算法的列表:

nmfAlgorithm()

[1] "brunet" "KL" "lee" "Frobenius" "offset"

[6] "nsNMF" "ls-nmf" "pe-nmf" "siNMF" "snmf/r"

[11] "snmf/l"

另一种可能性是使用自定义算法,如NMF文档中所述

^{pr2}$

我如何使用rpy2复制这个?在

我试过类似的方法:

^{3}$

但这并没有带来魔力

NMF algorithm - No matching entry for key “key=function (x, seed, scale.factor >= 1)

{

pca <- prcomp(t(x), retx = TRUE)

factorization.rank <- nbasis(seed)

cat(seed)

basis(seed) <- abs(pca$rotation[, 1:factorization.rank])

coef(seed) <- t(abs(pca$x[, 1:factorization.rank]))/scale.factor

return(seed)

}” in the registry.

Use one of: 'brunet', 'Frobenius', 'KL', 'lee', 'ls-nmf', '.M#brunet', 'nsNMF', 'offset', 'pe-nmf', '.R#brunet', '.R#lee', '.R#nsNMF', '.R#offset', 'siNMF', '.siNMF', 'snmf/l', 'snmf/r'.

warnings.warn(x, RRuntimeWarning)

我想知道能不能有人帮我?在


Tags: selfoffsetseednmfrankfactorizationpcacomp
1条回答
网友
1楼 · 发布于 2024-04-26 06:56:09

最初的提问者had his question answered on the NMF project on Github。如前所述,您将新算法定义为一个函数,然后使用setNMFMethod将该函数添加到执行非负矩阵分解的算法的注册表中,然后可以按名称调用它。在

相关问题 更多 >