请选择 进入手机版 | 继续访问电脑版
楼主: joy0519
5248 1

[程序分享] R语言 EXCEL文件的批量读取 [推广有奖]

  • 3关注
  • 1粉丝

副教授

16%

还不是VIP/贵宾

-

威望
0
论坛币
1740 个
通用积分
98.4184
学术水平
4 点
热心指数
3 点
信用等级
0 点
经验
219 点
帖子
292
精华
0
在线时间
503 小时
注册时间
2015-9-26
最后登录
2024-3-29

joy0519 发表于 2018-3-5 12:12:34 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
(1)批量读取

批量读取数据,有两种形式,读取一个目录下的所有文件,从数据库中读取多个表。

##读取同一目录下的所有文件install.packages("XLConnect")library("XLConnect")path <- "F:/Rfile/OD-B/Data" ##文件目录fileNames <- dir(path)  ##获取该路径下的文件名filePath <- sapply(fileNames, function(x){                  paste(path,x,sep='/')})   ##生成读取文件路径data <- lapply(filePath, function(x){             readWorksheetFromFile(x, header=T,sheet=1)})  ##读取数据,结果为list##从数据库中读取数据类似上面,获取要数据库里的文件名,写个正则筛选文件名后for循环读取。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
(2)批量输出

对结果批量输出csv文件,其中data为list格式

outPath <- "F:/Rfile/OD-B/Consequence" ##输出路径out_fileName <- sapply(names(data),function(x){                    paste(x, ".csv", sep='')}) ##csv格式out_filePath  <- sapply(out_fileName, function(x){                     paste(outPath ,x,sep='/')}) ##输出路径名##输出文件for(i in 1:length(data)){  write.csv(data[], file=out_filePath, row.name=F) }
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL xcel exce cel R语言

joy0519 发表于 2018-3-5 12:15:57 |显示全部楼层 |坛友微信交流群
(1)批量读取
批量读取数据,有两种形式,读取一个目录下的所有文件,从数据库中读取多个表。
##读取同一目录下的所有文件
install.packages("XLConnect")library("XLConnect")
path <- "F:/Rfile/OD-B/Data" ##文件目录
fileNames <- dir(path)  ##获取该路径下的文件名
filePath <- sapply(fileNames, function(x){                 
paste(path,x,sep='/')})   ##生成读取文件路径
data <- lapply(filePath, function(x){            
readWorksheetFromFile(x, header=T,sheet=1)})  ##读取数据,结果为list
##从数据库中读取数据类似上面,获取要数据库里的文件名,写个正则筛选文件名后for循环读取。
(2)批量输出
对结果批量输出csv文件,其中data为list格式
outPath <- "F:/Rfile/OD-B/Consequence"
##输出路径
out_fileName <- sapply(names(data),function(x){                  
paste(x, ".csv", sep='')}) ##csv格式
out_filePath  <- sapply(out_fileName, function(x){                     
paste(outPath ,x,sep='/')}) ##输出路径名##输出文件
for(i in 1:length(data)){  
write.csv(data[], file=out_filePath, row.name=F) }

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-18 19:06