python - rpy2 pass : 在函数参数中
问题描述
尝试使用 python rpy2 执行下面的 r 代码时遇到问题。
from rpy2.robjects import r
import rpy2.robjects as ro
from rpy2.robjects.conversion import localconverter
from rpy2.robjects import pandas2ri
from rpy2.robjects.packages import importr
stats = importr("stats")
with localconverter(ro.default_converter + pandas2ri.converter):
Rdataframe2 = ro.conversion.py2rpy(dtw)
rdism = r["as.dist"](Rdataframe2)
ttclust = r.hclust(rdism)
ttclusterange = r.cutree(ttclust, k='1:3')
我找不到k="1:3"
在函数中传递参数的cutree
方法。
我不断收到一条错误消息,说明
""elements of 'k' must be between 1 and %d", :
missing value where TRUE/FALSE needed
似乎我找不到正确的语法来执行最后一行。
有人可以帮我解决这个问题吗
解决方案
该1:3
表达式旨在生成 R 中的向量c(1, 2, 3)
。但是,您不是在 R 中评估它,而是'1:3'
使用 rpy2 将其作为字符串/字符传递。尝试传递等效列表[1, 2, 3]
,或使用list(range(1, 3 + 1))
. 这是:
r.cutree(ttclust, k=list(range(1, 3 + 1)))
推荐阅读
- python - 如何使用 keras 获得模型的准确性?
- javascript - 使用jQuery为foreach中的每个元素调用函数
- javascript - react-navigation 自定义选项卡组件隐藏标签
- r - 在 TukeyHSD 中显示家庭课程
- jenkins - Jenkins - 如何在 v2.110 W10 之后设置工作区根目录
- r - 如何以编程方式更改传递给“填充”的列名?
- node.js - mongodb nodejs发现toarray没有显示嵌套对象结果
- oracle - PL/SQL 记录和表变量已更改
- php - 48)地址已在使用:AH00072:make_sock:无法绑定到地址[::]:80
- python - 在较长列表的每个第 n 个元素处将两个不同长度的列表组合成元组