R语言︱用excel VBA把xlsx批量转化为csv格式
在上面的尝试已经发现,xlsx本身就是这个复杂问题的最根本原因。与之相反,R对csv等文本格式支持的很好,而且有fread这个神器,要处理一定量级的数据,还是得把xlsx转化为csv格式。
以此为思路,在参考了两个资料后,我成功改写了一段VBA,可以选中需要的xlsx,然后在其目录下新建csv文件夹,把xlsx批量转化为csv格式。
代码如下:
[plain]view plaincopyprint?
Sub getCSV()
'这是网上看到的xlsx批量转化,而改写的一个xlsx批量转化csv格式
'1)批量转化csv参考:http://club.excelhome.net/thread-1036776-2-1.html
'2)创建文件夹参考:http://jingyan.baidu.com/article/f54ae2fcdc79bc1e92b8491f.html
'这里设置屏幕不动,警告忽略
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim data As Workbook
'这里用GetOpenFilename弹出一个多选窗口,选中我们要转化成csv的xlsx文件,
file = Application.GetOpenFilename(MultiSelect:=True)
'用LBound和UBound
For i = LBound(file) To UBound(file) Workbooks.Open Filename:=file(i)
Set data = ActiveWorkbook
Path = data.Path
'这里设置要保存在目录下面的csv文件夹里,之后可以自己调
'参考了里面的第一种方法
On Error Resume Next
VBA.MkDir (Path & "\csv")
With data
.SaveAs Path & "\csv\" & Replace(data.Name, ".xlsx", ".csv"), xlCSV
.Close True
End With
Next i
'弹出对话框表示转化已完成,这时去相应地方的csv里查看即可
MsgBox "已转换了" & (i-1) & "个文档"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
操作很简单:
把代码复制进excel的vba编辑器里,然后运行getcsv这个宏,会跳出一个窗口,要求选择你要转化的xlsx文件。(可多选)
选中以后,等一段时间,再回到xlsx文件下,会多一个csv文件夹,里面就是我们要导入R的文本文件了。
这个方法的好处是:
1、操作简单,直接依托于excel的VBA操作,不用配置Java环境,之后沟通成本/换电脑成本小
2、特别适用于有一定数据量,但是数据格式整齐的文件,譬如从某数据端读入的数据。用fread还可以控制读取的行(skip=NNN),代码写入整洁方便。就算有一些异行数据,也可以事先用VBA进行操作,简单方便。
——————————————————————————————————————————————
读入R数据库可以用lappy来读取:
[plain]view plaincopyprint?
#lapply读取法
filenames <- list.files("C:/Users/a.csv", pattern = ".csv",full.names = TRUE) #变成list格式
#没有full.names = TRUE,都会出现cannot open file: No such file or directory
name=function(x) {
read.csv(x,header=T)
}
datalist <- lapply(filenames,name) #filenames执行name函数
其中需要强调一点WPS excel怎么加载宏
1、WPS excel本身是没有宏功能的,需要自己加载;
2、加载一个.exe,安装好了,即可。
就需要下载一个“wps的vba模块”,
加载好这一个就行了,
然后就是简单输入,就可以调用宏了。
数据分析咨询请扫描二维码
必备的职业技能 统计学基础 - 理解概率、假设检验、回归分析等统计概念。 - 运用统计方法对数据进行分析和解读。 编程能力 - 掌 ...
2024-11-27基础课程 - 统计学基础: 统计学是数据分析的基石,包括概率、假设检验、回归分析等基本知识。这有助于分析师更好地理解数据背后 ...
2024-11-27数据分析领域涉及众多工具软件,涵盖了从数据处理、分析到可视化的各个方面。在选择适合自己需求的工具时,需要考虑数据规模、分 ...
2024-11-27在数据分析领域,选择合适的工具至关重要。不同的软件适用于不同的需求和技能水平。以下是几款值得考虑的数据分析软件: - Table ...
2024-11-27数据分析中常用的Excel与Python函数公式涵盖了广泛的应用场景。掌握这些基础和高级技巧对于成为一名优秀的数据分析师至关重要。 ...
2024-11-27Python是一种高级编程语言,由荷兰程序员Guido van Rossum于1989年圣诞节期间开始开发,并于1991年首次发布。Python的设计哲学强 ...
2024-11-27课程内容 数学基础: 高等数学、线性代数、概率论与数理统计、微积分等为算法设计和数据分析打下基础。 编程与算法: 掌握 ...
2024-11-27爬虫工程师是互联网时代中至关重要的职业之一,他们的工作内容主要涉及编写和维护网络爬虫程序,进行数据采集与清洗,设计系统架 ...
2024-11-27技能需求 数据管理与建模 - 掌握SQL、HiveQL、Spark SQL等数据库语言,进行复杂数据查询和分析。 - 使用数据建模工具如ER/Studio ...
2024-11-27技术技能 - 编程技能 - 掌握SQL、Python、R语言等编程工具是基本要求,可用于数据提取、清洗和分析。 - 数据分析与建模技能 ...
2024-11-27财务数据分析职业展望 - 需求激增: 随着企业信息化和数字化进程的加速,财务数据产生和积累速度急剧增长,推动了财务数据分析需 ...
2024-11-27技术技能 数学与统计技能:数据分析师需要具备扎实的数学基础,包括统计学、概率论、多变量微积分和线性代数等知识,以帮助理 ...
2024-11-27选择适当的工具和软件 选择恰当的工具对于创建出色的数据分析图表至关重要。Excel提供强大的数据可视化功能,R语言的ggplot2包 ...
2024-11-27初级市场分析师在工作中面临着重要任务之一:评估竞争对手的表现。这项工作不仅有助于描绘行业竞争格局,还能帮助企业发现自身的 ...
2024-11-27基础知识的建立 要想在数据分析领域脱颖而出,首先需要打好坚实的基础。 数据分析的基础知识十分重要,其中包括统计学、概率论、 ...
2024-11-27# 要学习Python数据分析 掌握Python基础知识 - 首先需要掌握Python的基础知识,包括基本语法、数据结构(如列表、元组、字典等) ...
2024-11-27学数据分析能在什么单位工作 数据分析的就业领域概述 数据分析专业毕业生广泛应用于各行各业,包括但不限于以下单位: 政府机关 ...
2024-11-27想学数据分析需要学哪些课程 数据分析学习路径推荐 基础课程: 统计学: 统计学作为数据分析的基石,涵盖概率论、描述性统计、 ...
2024-11-27# 现在什么行业发展前景最好 **人工智能与机器学习** - 人工智能技术快速发展,广泛应用于智能家居、自动驾驶等领域。 - 具备巨 ...
2024-11-27# 未来最有前景的行业 **人工智能与机器学习** - 人工智能被认为是未来最具潜力的行业之一,其应用范围广泛,包括智能家居、医 ...
2024-11-27