我想在Python中借助rpy2使用ICCest
(R库ICC
中的函数)
R中ICCest的用法是ICCest(column_a, column_b, data)
。
但是,没有办法通过rpy2传递一个不带引号的列名
如果我执行下面的代码
import numpy as np
from rpy2.robjects.vectors import DataFrame
from rpy2.robjects.packages import importr
df = DataFrame.from_object({
'a': np.arange(20).repeat(5),
'b': np.arange(100),
})
ICC = importr("ICC")
ICC.ICCest('a', 'b', df)
它将出错并发出如下警告:
WARNING:rpy2.rinterface_lib.callbacks:R[write to console]: Error in eval(as.name(y), data, parent.frame()) : object 'b' not found
Calls: <Anonymous> -> eval -> eval
WARNING:rpy2.rinterface_lib.callbacks:R[write to console]: In addition:
WARNING:rpy2.rinterface_lib.callbacks:R[write to console]: Warning message:
WARNING:rpy2.rinterface_lib.callbacks:R[write to console]: In (function (x, y, data = NULL, alpha = 0.05, CI.type = c("THD", :
WARNING:rpy2.rinterface_lib.callbacks:R[write to console]:
WARNING:rpy2.rinterface_lib.callbacks:R[write to console]: passing a character string to 'y' is deprecated since ICC vesion 2.3.0 and will not be supported in future versions. The argument to 'y' should either be an unquoted column name of 'data' or an object
注意最后一行警告。 我如何用rpy2传递“未加引号的‘data’列名”
一旦我将numpy数组转换为
FloatVector
,代码就可以工作了此外,最好在此处使用
as.name
或as.symbol
:相关问题 更多 >
编程相关推荐