解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹;2.该条数据来源于哪个excel文件。最终,按照子文件夹单独保存汇总文件,或者只保存成一个汇总文件。

场景描述:抓取了各个APP的使用数据,分散地保存在各个文件夹中。文件格式如下:

第一级分类:文件夹名

第二级分类:文件夹下xlsx文件名

第三级分类:每个xlsx文件中每行(具体的每条数据),但其中并没有该APP属于的二级分类和一级分类,需要为每条数据添加二级分类和一级分类,并最终汇总到一个文件中。

解决方法一:

#作用:读取每个文件夹下的excel,并将其合并成一个文件。

#共有3级:第一级:文件夹名,第二级:文件夹中的xlsx文件名,第三级:xlsx文件中的每行

#代码后面注释中若有:【修改】字样,则表示如果要在你机器上运行该段代码时,需要进行相应的修改。

##########方法一:最终单独保存在每个文件夹下

rm(list=ls())

setwd("E:/cnblogs") #设定工作目录【修改】

library(xlsx)

first_category_name = list.files("APP整理") #list.files命令得到"APP整理”文件夹下所有文件夹的名称【修改】

dir = paste("./APP整理/",first_category_name,sep="") #用paste命令构建路径变量dir,第一级目录的详细路径【修改】

n = length(dir) #读取dir长度,也就是:总共有多少个一级目录

n_sub

n_sub

n_sub

head(n_sub) #n_sub是每个一级目录(文件夹)下有多少个文件,也就是:有多少个二级目录,初始化为0,用于后面的操作

##########

for(i in 1:n){ #对于每个一级目录(文件夹)

b=list.files(dir[i]) #b是列出每个一级目录(文件夹)中每个xlsx文件的名称

n_sub[i]=length(b) #得到一级目录(文件夹)下xlsx的文件个数:n_sub

merge_1

dim(merge_1)

names(merge_1)

merge_1$second_category

merge_1$first_category

merge_1

for(j in 1:n_sub[i]){ #对于每个一级目录(文件夹)下的每个xlsx文件

new_1

names(new_1)

new_1

new_1$second_category

new_1$first_category

merge_1

}

write.xlsx(merge_1,paste(dir[i],'/merge.xlsx',sep=''),row.names = F,col.names= F)#单独保存在每个文件夹下

}

解决方法二:

##########方法二:最终得到一个汇总的xlsx文件,在每个文件夹下并没有保存单独的合并文件

rm(list=ls())

setwd("E:cnblogs") #设定工作目录【修改】

library(xlsx)

first_category_name = list.files("APP整理") #list.files命令得到"APP整理"文件夹下所有文件夹的名称

dir = paste("./APP整理/",first_category_name,sep="") #用paste命令构建路径变量dir,第一级目录的详细路径

n = length(dir) #读取dir长度,也就是:总共有多少个一级目录

n_sub

n_sub

n_sub

head(n_sub) #n_sub是每个一级目录(文件夹)下有多少个文件,也就是:有多少个二级目录,初始化为0,用于后面的操作

merge_1

dim(merge_1)

names(merge_1)

merge_1$second_category

merge_1$first_category

merge_1

for(i in 1:n){ #对于每个一级目录(文件夹)

b=list.files(dir[i]) #b是列出每个一级目录(文件夹)中每个xlsx文件的名称

n_sub[i]=length(b) #得到一级目录(文件夹)下xlsx的文件个数:n_sub

for(j in 1:n_sub[i]){ #对于每个一级目录(文件夹)下的每个xlsx文件

new_1

names(new_1)

new_1

new_1$second_category

new_1$first_category

merge_1

}

# write.xlsx(merge_1,paste(dir[i],'/merge.xlsx',sep=''),row.names = F,col.names= F)

}

write.xlsx(merge_1,paste("./APP整理",'/merge.xlsx',sep='')

,row.names = F,col.names= F)#得到一个汇总文件,并没有在每个文件夹下保存单独的汇总文件

r读取文件夹下的所有csv文件_[R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。...相关推荐

  1. python打不开xls文件,wps下用vba实现合并文件夹中所有excel文件

    python打不开xls文件,用wps下vba解决问题 用了常用的三种python读写xls文件的方法都报错 xlrd openpyxl pandas 原因 解决方法 用vba实现合并文件夹中所有ex ...

  2. vue中导入excel文件

    vue中导入excel文件 1.安装插件 npm install -S file-saver xlsxnpm install -D script-loader 2.在utils中创建excel文件夹放 ...

  3. MYSQL中导入Excel文件

    本文阐述了一般情况下怎么在mysql中导入excel文件,作者借助工具sqlyog,也可以直接在mysql中操作. 主要步骤: 第一步:首先将excel文件打开另存为csv文件 再将其用Notepad ...

  4. mysql数据库 导入excel_如何在MySQL数据库中导入excel文件内的数据 详细始末

    在开发项目的时候通常需要使用数据库,数据库Database是用来存储和管理数据的仓库.下面,我们以MySQL数据库为例来看看如何在数据库中导入excel文件内的数据吧. 操作方法 01 MySQL 打 ...

  5. SVN操作 -- TortoiseSVN中的Excel文件比较

    TortoiseSVN自带的比较工具 在使用TortoiseSVN时,经常需要在提交前比较本地修改的文件和版本库上的文件之间的差异.TortoiseSVN自带了一个比较工具TortoiseMerge, ...

  6. Qt中打开excel文件

    qt中打开excel文件有两种方法 第一种,用QAxObject,在使用QAxObject,要在.pro文件中添加QT += axcontainer,同时在调用文件中添加#include <QA ...

  7. 在python中创建Excel文件并写入数据

    来源:<在python中创建Excel文件并写入数据> python中的包xlwt和xlsxwriter都是比较方便创建excel文件并写入数据的. xlwt中: 通过xlwt.Workb ...

  8. 如何在VB.NET中把excel文件转化为PDF文件

    文章目录 一.如何在VB.NET中把excel文件转化为PDF文件 二.使用步骤 一.如何在VB.NET中把excel文件转化为PDF文件 基于之前获取打印机端口号的教程 二.使用步骤 代码如下(示例 ...

  9. DB2中使用Excel文件数据转CSV格式后导入数据库

    Excel文件数据存入DB2数据库中 首先将Excel文件另存为CSV格式文件. 从CSV格式文件中迁移数据到DB2 目的: 从**.csv文件中迁移数据到DB2数据库中 语句: DB2 " ...

最新文章

  1. tpcc mysql 基准测试_使用tpcc-mysql 对mysql进行基准测试
  2. 微软45年前预言成真!沈向洋:未来AI beings的数量将超过人口
  3. JZOJ 3766. 【BJOI2014】大融合
  4. [html] 写一个布局,当页面滚动一定高时,导航始终固定在顶部,反之恢复原位
  5. 前端学习(338):堆栈
  6. mysql乐观锁重试_乐观锁加重试,并发更新数据库一条记录导致:Lock wait timeout exceeded...
  7. 聚类分析二:DBSCAN算法
  8. netbeans写登录界面java_NetBeans 界面美化与字体设置
  9. QT实现“摇摇乐抽奖”(Lottery和Lottery2)
  10. STM32——EMWIN 字体(二十)
  11. VS2019项目自动包含bin或obj文件夹的问题
  12. 中国象棋棋盘java_JAVA中用程序绘制国际象棋与中国象棋棋盘
  13. 【C语言】案例十六:掷骰子(随机数)
  14. Python猜数字项目源代码
  15. 可能是最漂亮的Spring事务管理详解
  16. c语言实践输出某个区间中不是3的倍数的偶数
  17. New Year Snowmen((贪心)map+优先队列)
  18. android 9.0 toast不显示,9.0 toast定位+WebDriverWait显示等待
  19. ElementUI 的组件 Switch(开关)如何让文字显示在按钮上
  20. 硬盘分区出错提示磁盘结构损坏且无法读取怎么修复??

热门文章

  1. IBM小型机没有显卡,用串口登录需要修改tty,加clocal参数
  2. java中singleton_Singleton是什么,在Java中如何实现
  3. Android动画定义知识小结
  4. [HAOI2007]反素数
  5. 五个案例让你明白GCD死锁
  6. Windows Phone 7 立体旋转动画的实现
  7. html输入字符长度佛下一句,js如何判断输入字符串长度
  8. python实现用线程爬虫 快速高效爬数据
  9. Python批量检查docx文档中文本框的内容是否正确
  10. Python编程常见错误表现形式与原因分析