我尝试使用rpy2库将数据帧从python传递到R。我试过以下方法,但失败了。在
import pandas as pd
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
from rpy2.robjects import pandas2ri
pcaMethods = importr('pcaMethods')
pandas2ri.activate()
train_df = pd.read_csv('C:\\misc\\train.csv')
train_dfNA = train_df.fillna(robjects.NA_Real)
result = pcaMethods.pca(train_dfNA, method="svd", nPcs=2)
我希望在python中进行转换和任何其他工作,而R只用于执行我需要的方法(很少但仍然需要)。另外,我知道我可以通过robjects.r
发送R代码来执行任务,但这是另一个讨论的主题。在
编辑:我得到的错误是
^{pr2}$
在R中,为不同的数组类型定义了不同的“NA”值。类型转换和类型层次结构使其在执行
array[i] <- NA
之类的操作时“正常工作”。在以下是R中的一些NA值以及它们在
rpy2
中的映射方式:你应该得到这样的东西:
^{pr2}$这里使用
pandas
来设置NA值,因此调用fillna()
得到的类型在传递给R时会很重要关于运行时错误,您没有共享它,但我怀疑这是一个名为报告丢失值使PCA无法执行的R函数。在
最后,我从您在Windows上使用的
rpy2
文件路径看到了。不幸的是,在Windows上使用rpy2
的范围从“不支持”到“甚至不安装”,这取决于版本。在相关问题 更多 >
编程相关推荐