python - 使用 write.xls() 保存多个数据帧时出错

标签 python r xls

确保库已安装并且 Python 2.7.7 位于 PATH 中...

> library(dataframes2xls)
> shell("PATH")
PATH=D:\Program Files\R\R-3.1.0\bin\x64;D:\Python27\;C:\Program Files\Dell\DW WLAN Card;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;D:\Program Files\MATLAB\R2014a\runtime\win64;D:\Program Files\MATLAB\R2014a\bin;C:\Program Files\OpenVPN\bin;D:\Program Files (x86)\java\bin\client\

...我在尝试保存 2 个数据帧时遇到了这种奇怪的情况:

> write.xls(c(mtcars, iris), file = "myframes.xls")
D:\Python27\python.exe: can't open file 'D:/Program': [Errno 2] No such file or directory
Warning message:
running command 'python D:/Program Files/R/R-3.1.0/library/dataframes2xls/python/csv2xls.py -i C:\Users\Kuba\AppData\Local\Temp\Rtmpeinq3z/csvfile1.csv,C:\Users\Kuba\AppData\Local\Temp\Rtmpeinq3z/csvfile2.csv -o myframes.xls -s Sheet1,Sheet2 ' had status 2

这是什么意思以及如何解决?

编辑:正如@machow指出的那样,问题出在文件夹名称中的空格。将 R 安装到名称中不含空格的不同文件夹中解决了该问题。但是,还有其他更明智的解决方案吗?

最佳答案

如果您查看 write.xls 的源代码,第 160-162 行看起来好像只是粘贴参数并将它们提供给 system():

csv2xls.cmd = paste(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,sep="")
if (system.returnvalue == 0) {
    system.returnvalue = system(csv2xls.cmd)

但是,它不会在目录或转义空间周围放置字符串。 The link @DrDom 给出的似乎是一个不错的选择。安装 xlsx 包并从链接获取 save.xlsx 函数后,您只需执行

save.xlsx('myframe.xlsx', mtcars, iris) 

关于python - 使用 write.xls() 保存多个数据帧时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24353608/

相关文章:

python - 如何在python中执行两条语句之间插入1秒的时间间隔

r - ggplot 的注释中的文本格式

css - R shiny tabset标题修改字体大小

excel - SAS中每列分为​​子列时如何导入excel文件

python - 是否可以将 Python 模块(.py 文件)导入字典?

python - 如何将 RTF 插入 wxpython RichTextCtrl 中?

返回一组对象共享的属性向量

file - 计算特定文件夹中的文件并将数字显示到 1 个单元格中

javascript - 如何在 HTML 中实现 XSLT 文件