确保已安装该库并且PATH中包含Python 2.7.7 ...
> 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)
但是,它不会在目录或转义空间周围放置字符串。 @DrDom给出的The link似乎是一个不错的选择。安装
xlsx
软件包并从链接中获取save.xlsx
函数后,您只需save.xlsx('myframe.xlsx', mtcars, iris)
关于python - 使用write.xls()保存多个数据帧时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24353608/