前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Stata | 批量转换数据格式

Stata | 批量转换数据格式

作者头像
PyStaData
发布2021-03-23 11:41:17
3.4K0
发布2021-03-23 11:41:17
举报
文章被收录于专栏:PyStaDataPyStaData

提出问题

如果有一批其他格式的数据,如 Excel,CSV 等,如何批量转为 Stata 的 .dta 格式数据?

分析问题

先来看单一数据的处理思路,先 import 到 Stata,经过变量名类型转换、重命名变量名等系列数据清理工作,再 save 为 dta 数据。

如果有许多数据,无非是套用循环,对待转换的数据文件进行批量操作。那么待解决的问题有:

  • 如何获取待转换的数据文件名?
    • 方法 1: 使用外部命令 fs 可将指定类型文件名存为返回值,调用即可;
    • 方法 2: 定义 local
  • 如何获取待转换文件的文件名?
    • 对字符串进行处理,并存为暂元。需要了解下 subinstr()substr() 函数的使用。substr() 用于截取指定长度的字符串,这里用于选中文件的后缀,即截取内容为后缀;subinstr() 用于将指定字符串替换,此处用于将后缀替换为空白,即可得文件名。

下面以几个 .xlsx 数据为例,进行演示。

代码实现

代码语言:javascript
复制
* 使用 -fs- 命令
* ssc install fs, replace
fs *.xlsx
foreach file in `r(files)'{
 local filename = subinstr("`file'",substr("`file'",-5,.),"",.)
 import excel using "`file'", clear
 save "../output/`filename'.dta", replace
}
代码语言:javascript
复制
* 定义暂元
local files: dir "`c(pwd)'" files "*.xlsx"
foreach file in `files'{
 local filename = subinstr("`file'",substr("`file'",-5,.),"",.)
 import excel using "`file'", clear
 save "../output/`filename'.dta", replace
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyStaData 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 提出问题
  • 分析问题
  • 代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档