- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
像许多人一样,我希望停止跨越 R 和 Python 世界,而只是使用 Pandas、Pyr2、Numpy 等在 Python 中工作。我使用 R 包 ez 来实现其 ezANOVA 工具。 如果我以困难的方式做事,它会起作用,但为什么当我以简单的方式做事时,它不起作用?我不明白由此产生的错误:
File "/Users/malcomreynolds/analysis/r_with_pandas.py", line 38, in <module>
res = ez.ezANOVA(data=testData, dv='score', wid='subjectid', between='block', detailed=True)
File "/usr/local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 178, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 106, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error in table(temp[, names(temp) == wid]) :
attempt to set an attribute on NULL
请参阅下面的完整可重现代码(需要一些 python 包:pyr2、pandas、numpy):
import pandas as pd
from rpy2 import robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate() # make pyr2 accept and auto-convert pandas dataframes
from rpy2.robjects.packages import importr
base = importr('base')
ez = importr('ez')
robjects.r['options'](warn=-1) # ???
import numpy as np
"""Make pandas data from from scratch"""
score = np.random.normal(loc=10, scale=20, size=10)
subjectid = range(10)
block = ["Sugar"] * 5 + ["Salt"] * 5
testData = pd.DataFrame({'score':score, 'block':block, 'subjectid': subjectid})
# it looks just like a dataframe from R
print testData
"""HARD WAY: Use ezANOVA thorugh pyr2 *** THIS WORKS ***"""
anova1 = robjects.r("""
library(ez)
function(df) {
# df gets passed in
ezANOVA(
data=df,
dv=score,
wid=subjectid,
between=block,
detailed=TRUE)
}
""")
print anova1(testData)
# this command shows that ez instance is setup properly
print ez.ezPrecis(data=testData) # successful
"""EASY WAY: Import ez directly and use it """
# *** THIS APPROACH DOES NOT WORK ***
# yet, trying to use ez.ezANOVA yields an excpetion aboutthe wid value
# res = ez.ezANOVA(data=testData, dv='score', wid='subjectid', between='block', detailed=True)
# print res
# *** THIS APPROACH WORKS (and also uses my options change) ***
res = ez.ezANOVA(data=testData, dv=base.as_symbol('score'), wid=base.as_symbol('subjectid'), between=base.as_symbol('block'))
print res
最佳答案
在简单版本中,您将符号名称作为字符串传递。这与符号不同。
检查 Minimal example of rpy2 regression using pandas data frame 中 as_symbol
的使用
关于python - pandas 和 rpy2 : Why does ezANOVA work via robjects. r 但不是 robjects.packages.importr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31169496/
像许多人一样,我希望停止跨越 R 和 Python 世界,而只是使用 Pandas、Pyr2、Numpy 等在 Python 中工作。我使用 R 包 ez 来实现其 ezANOVA 工具。 如果我以困
下面的代码仅抛出一次 NullPointerException。 public Optional getBucketObject(String key) { return ge
我对 Python 比较陌生(Anaconda 3.6.0,win10 上的 64 位),并且很难让它与 R (3.3.2) 很好地配合。 我使用 conda install 安装了 RPy2(版本
我有一个包含 1000 万条记录的数据。我有一个 R 代码,需要使用 3000 次迭代来估计模型的系数。在此数据上运行 R 代码非常耗时,有时我的系统会挂起。我正在使用带有 4 GB 内存的 Wind
我正在尝试将 R-dataframe 转换为 Python Pandas DataFrame。 我使用以下代码: from rpy2.robjects import pandas2ri pandas2
我感觉自己很傻,但我似乎无法解决这个问题。我正在尝试使用 Python 中的 rpy2 制作饼图。 from rpy2.robjects import r import os.path image =
我在 Windows 10 上运行 miniconda。我已经安装了 rpy2 并在过去使用它没有任何问题。最近我从 Pandas 版本 0.24.0 升级到 0.25.1。在发现它破坏了我一直在处理
我正在使用 rpy2 从 python 运行 auto.arima() 模型。我的预测输出一个类型为 rpy2.robjects.vectors.ListVector 的对象。 input1: ty
手动安装 R 和 rpy2 安装成功但出现上述错误。请帮帮我好吗? 一些有用命令的输出: >>> import rpy2 >>> rpy2.__path__ ['/home/ashish/minico
python 3.7.3,rpy2 3.2.0,代码如下: 从 rpy2 导入 robjects Traceback (most recent call last): File "", line
我正在使用 rpy2 API 在 python 中实现一个简单的函数。 在 VScode 中,我设法打印一个置信区间,计算 Z 统计量调用使用 robjects 创建的函数,如图所示。但在打印值之前,
我正在使用 rpy2 API 在 python 中实现一个简单的函数。 在 VScode 中,我设法打印一个置信区间,计算 Z 统计量调用使用 robjects 创建的函数,如图所示。但在打印值之前,
在解决 LiveObject 引发的异常时遇到问题,我尝试根据 Redisson 测试用例重现有问题的行为。 我重现问题的最少代码是这个测试用例(主要灵感来自 RedissonLiveObjectSe
我是一名优秀的程序员,十分优秀!