尽管我不怎么使用Excel,处理数据大多数是依赖R语言,但是这是我个人的喜好,不能要求别人也学会用R语言,所以在交流的时候还得用Excel。
将R语言的数据框(data.frame)输出成Excel需要的格式其实也不难,我提供几种解决方案。
最简单的方法就是用write.csv
或write.table
将结果保存为csv格式,一般而言大部分Windows电脑都会用Excel打开csv格式。
如果对方不知道什么叫做csv格式,那么在用write.csv
或write.table
保存文件的时候,记得将文件后缀改为".xls"或`".xlsx"。
上面的解决方案还存在一个小问题,就是对方如果对csv更改之后不另存为真正的Excel格式,那么重新打开的时候,格式就会乱掉,所以终极的解决方案就是用R包xlsx
安装方法如下:
首先你需要先从https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载64位的JAVA
为什么是下载JDK?因为如果你直接搜索java环境安装的话,十有八九会被导航到32位java环境的下载点,然后你就蒙了。明明自己装了JAVA,后面还是报错。
安装完成之后,要增加一个环境变量JAVA_HOME
在R里面用Sys.getenv("JAVA_HOME")
确认有输出后,最后安装R包
install.packages("xlsx")
使用的话就非常容易了,记得设置append=TRUE
,这样子就能在一张Excel表格插入多个sheet了。
data("mtcars")
data("iris")
library(xlsx)
write.xlsx(mtcars, "../Desktop/test.xls",
sheetName = "mtcars", append = TRUE)
write.xlsx(iris, "../Desktop/test.xls",
sheetName = "iris",append = TRUE)
write.xlsx(iris, "../Desktop/test.xls",
sheetName = "iris2",append = TRUE)
write.xlsx(iris, "../Desktop/test.xls",
sheetName = "iris3",append = TRUE)
write.xlsx(iris, "../Desktop/test.xls",
sheetName = "iris4",append = TRUE)
吐槽,Excel会自作主张将
2/3
这种转换成日期,无力吐槽,所以保存之后记得检查。