r语言如何导入excel数据

r语言如何导入excel数据,第1张

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6649438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存