Python rpy2不翻译_&引用;进入“中”&引用;
我正在尝试使用rpy2从R导入的函数“read.csv”读取Python中的csv文件Python rpy2不翻译_&引用;进入“中”&引用;,python,r,rpy2,Python,R,Rpy2,我正在尝试使用rpy2从R导入的函数“read.csv”读取Python中的csv文件 r_read_csv = robjects.r['read.csv'] r_read_csv("initVar.csv", header = True, row_names = 1) 但是,上面的代码返回一个错误消息: rpy2.rinterface_lib.embedded.RRuntimeError: Error in read.table(file = file, header = header, s
r_read_csv = robjects.r['read.csv']
r_read_csv("initVar.csv", header = True, row_names = 1)
但是,上面的代码返回一个错误消息:
rpy2.rinterface_lib.embedded.RRuntimeError: Error in read.table(file = file, header = header, sep = sep, quote = quote, :
unused argument (row_names = 1)
在R中,参数的名称是行。名称
。但是,我不能使用点,因为它在Python中的含义不同
我以为rpy2会把“u”翻译成“.”。至少这是我从他们那里了解到的。显然,我错了
问题:在这种情况下,如何指定
row.names=1
?我确实重现了一个有趣的错误!它出现在rpy2
中的read.csv
不继承其父函数read.table
,因此无法识别行名称参数。但是,您可以使用read.table
确保指定read.csv
的默认值:
read_tbl = robjects.r['read.table']
rdf = read_tbl("/path/to/data.csv", header = True, row_names = 1, sep = ",")
类似地,如果对utils包使用importr
方法:
from rpy2.robjects.packages import importr
...
utils = importr("utils")
rdf = utils.read_table("/path/to/data.csv", header = True, row_names = 1, sep = ",")
但是,以下两种方法在Python中都不起作用,但在R中却起作用: 蟒蛇
read_csv = robjects.r['read.csv']
rdf = read_csv("/path/to/data.csv", row_names = 1)
utils = importr("utils")
rdf = utils.read_csv("/path/to/data.csv", row_names = 1)
R
df根据row_names=1
即使row.name=1
也没有用,因为在第一行没有列标题的情况下,默认行为是将第一列作为名称。如果您得到所需的输出,请删除它并重试。“在没有列标题的情况下”-但我确实有列标题(请参阅header=True)。所以我认为你的建议不适用于这种情况?谢谢,效果很好!如果可以的话,如果你能向我解释一下你是如何找到答案的,我将不胜感激?你是怎么想的,你采取了什么步骤。这将有助于我下次自己找到答案。这是更多的知识和经验。在此之前,我知道rpy2
使用下划线转换句点名称。因此,首先我用robjects
测试了read.csv
,然后用importr
在虚拟csv上重现您的问题。然后,知道read.csv
是read.table
函数套件的包装,我测试了read.table
,发现它确实有效。我还查看了行。name
在read.csv
中未作为命名参数公开,从而得出结论rpy2
不继承其父调用方。
df <- read.csv("/path/to/data.csv", row.names = 1)