![r语言如何导入excel数据,第1张 r语言如何导入excel数据,第1张](/aiimages/r%E8%AF%AD%E8%A8%80%E5%A6%82%E4%BD%95%E5%AF%BC%E5%85%A5excel%E6%95%B0%E6%8D%AE.png)
R语言可以使用read.xlsx()函数来读取excel数据文件,也可以使用read.csv()函数来读取csv格式的数据文件。此外,还可以使用R包RODBC来连接数据库,从而将数据文件存储在数据库中,便于管理和 *** 作。另外,还可以使用R语言的XML包来解析XML格式的数据文件,从而将其导入R语言中进行处理分析。做分析没有
数据真是一大悲剧,正是无源之水、无根之木再加上无米之炊。通常我们搜寻到的数据
格式主要有文本格式、Excel格式和SPSS格式。当然也会有从数据库等其它途径进来,这不在本文讨论范围内。\x0d\x0a一般的文本格式导入,都可以用read.table命令把数据扔进R里面。Excel和Spss数据的话,可用相应软件将
文件打开,观察数据结构后将其复制到剪贴板,然后一样可以用read.table('clipboard')扔到R里面。如果文件太大不好复制,那么可以利用Excel和Spss的导出功能,将数据导出成文本格式。\x0d\x0a还有一种情况就是,你的计算机上没有安装Excel或是Spss,这数据导入就要用到RODBC扩展包了。首先装载RODBC包。然后输入数据文件的绝对路径(要注意是用/而不是\)来定义连接,最后用数据抓取命令获取你需要的标签页数据内容(Sheet1)。\x0d\x0alibrary(RODBC)\x0d\x0achannel=odbcConnectExcel("d:/test.xls")\x0d\x0amydata=sqlFetch(channel,'Sheet1')这样简单的两个步骤就可以将Excel数据导入R的mydata变量中。如果是Excel2007格式数据则要换一个函数\x0d\x0achannel=odbcConnectExcel2007('d:/test.xlsx')\x0d\x0amydata=sqlFetch(channel,'Sheet1')导入spss的sav格式数据则要用到foreign扩展包,加载后直接用read.spss读取sav文件\x0d\x0alibrary(foreign)\x0d\x0amydata=read.spss('d:/test.sav')上面的函数在很多情况下没能将sav文件中的附加信息导进来,例如数据的label,那么建议用Hmisc扩展包的spss.get函数,效果会更好一些。 业务分析过程中,常常会出现需要重建历史数据的情况,而历史数据往往分布在同构但不同的文件中,因此批量导入就派上用场了,这里以我的第一个R语言批量导入Excel为案例进行介绍。
#载入相关R包
library(rJava)
library(xlsxjars)
library(xlsx)
library(readxl)
library(data.table)
library(dplyr)
# 数据逻辑先验
a1 <- c(0:9)
a2 <- c(5:12,1,2)
a <- data.frame(a1,a2)
a$a <- ((a$a1 + 4) %% 12) + 1
# 路径设置
path.1 <- c("d:\\R")
# for循环与if嵌套实现不同名称对应
for (i in 0:9) {
if(i <5) {A = "180"}
if(i >= 5 &i <8) { A = "18"}
if(i >= 8) {A = "190"}
d = paste0(A, ((i + 4) %% 12) + 1)
path <- paste0(path.1,'\\', d, '-bfz.xlsx')
assign(paste0("bfz-",d), read_excel(path,skip = 4))
i=i+1
}
bd_mob0 <- data.frame()
bd_mob1 <- data.frame()
for (i in 1:length(file_names)){
excel_path <- paste0(path1,file_names[i])
sheet_name <- excel_sheets(excel_path)[6]
bd_mob0 <- cbind(read_excel(excel_path,sheet = sheet_name, skip =3),
账期 = substr(file_names[i],18,25)) # 加入账期
bd_mob1 <- rbind(bd_mob1, bd_mob0)
评论列表(0条)