这段代码效果很好(在很大程度上归功于帮助我的SO天才)
import os
from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
from rpy2.robjects.vectors import IntVector, FloatVector
with open ('sampleSizeWrapper.R') as fh:
rcode = os.linesep.join(fh.readlines())
wrapper = SignatureTranslatedAnonymousPackage(rcode,"wrapper")
a=(0.8,0.9,0.95,0.995);
wrapper.saveSpecContours(IntVector((0,1)),
0.1, FloatVector(a),
0.001, 1, 986)
使用" a"像这样硬编码..我没有问题,但是当我将值传递给我的Python脚本(来自网络,通过JSON),看起来像这样......
a=data["sens"]
""然后变成" 0.8,0.9,0.95,0.995"
但是当我试图调用FloatVector(a)时,我得到了......
ValueError: Error while trying to convert element 1 to a double.
我对Python的新手状态让我对为什么这不起作用感到困惑(虽然我确定它与将Python列表转换为1D向量有关)是否有人有一个想法如何制作" a"如果FloatVector没有硬编码,可以使用它吗?
非常感谢你。 JW