专栏名称: 爬虫俱乐部
Stata技术控,编程技术咨询,数据讨论与分享,编程和实证培训。
目录
相关文章推荐
安徽省人民政府网  ·  最高25℃!安徽气温大回暖就在下周 ·  昨天  
安徽省人民政府网  ·  最高25℃!安徽气温大回暖就在下周 ·  昨天  
国际旅游岛商报  ·  刚刚通知!海口这些区域或停水→ ·  3 天前  
吉林省消费者协会  ·  【消费提示】这份关于学生书包的消费提示请查收 ·  3 天前  
吉林省消费者协会  ·  【消费提示】这份关于学生书包的消费提示请查收 ·  3 天前  
华人生活网  ·  伊州地毯清洁工4.99美元淘的盘子,竟是中国 ... ·  3 天前  
华人生活网  ·  伊州地毯清洁工4.99美元淘的盘子,竟是中国 ... ·  3 天前  
51好读  ›  专栏  ›  爬虫俱乐部

不同格式的数据读入Mata方法总结(二)

爬虫俱乐部  · 公众号  ·  · 2018-01-19 12:08

正文

有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱 [email protected] ,我们会及时为您解答哟~喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是: https://stata-club.github.io ,粉丝们可以通过该网站访问过去的推文哟~

昨天的推文 《不同格式的数据读入Mata方法总结(一)》 中我们介绍了Mata自身的格式.mmat、stata系统数据以及外部.dta文件读入Mata的方法,今天我们继续介绍如何在Mata中读入外部 txt 数据。

首先,我们构造一个txt文档:

sysuse auto,clear

keep price mpg rep78 weight

keep in 1/20

outsheet using d:\mywork3.txt,replace

在这里我们用到以下两种方法,将文件mywork3.txt导入至Mata。

fopen()函数

mata:

D1 = fopen("d:\mywork3.txt", "r")

while ((line=fget(D1))!=J(0,0,"")) {

printf("%s\n", line)

}

fclose(D1)

end

注:

fopen() 函数:用来打开文件,格式为: fopen (string scalar fn, mode) ,string scalar fn通常指打开的文件路径和文件名,mode一般设定为“r”,表示文件是已存在并且是可读取的。

fget() 函数:用来逐行读取这个txt文件的数据。

J(n,m,#) :产生一个 n 行 m 列且元素都为#的矩阵

printf() 函数:它可以将函数结果输出到结果窗口。 printf("%s\n", line) 语句表示将line的内容输出到结果窗口,%s表示line中的内容是字符,\n是换行符,每输出一次后系统会自动换行。

以上Mata程序表示读取mywork3.txt文件并将保存在矩阵line中,然后用 fget() 命令逐行读取这个txt文件的数据同时保证读取的内容非空,并把它保存在矩阵line,接着将其中的内容用 printf() 函数输出到结果窗口,最后 fclose() 函数关闭矩阵。

部分结果如下:

cat()函数

cat() 函数也是读入. txt 文件到Mata矩阵的重要函数,曾在推文 《如何在Mata中进行网页分析》 中,我们就提及该函数的用法,今天还想告诉大家的是该函数不但可以读取txt格式的数据,还可以读入 txt 文件中指定行的数据呢,举例如下:

mata:

D2 = cat("d:\mywork3.txt") //读取mywork3.txt的所有内容

D2=ustrregexra(D2,"\s+"," ") // 正则表达式替换函数ustrregexra()用来删除空格

D2

D3= cat("d:\mywork3.txt",3,11) //读取mywork3.txt中第3-11行的内容

D3=ustrregexra(D3,"\s+"," ")

D3

end

得到D2矩阵部分内容:

得到D3矩阵内容:

看到上面矩阵D2的内容,也许大家会疑惑,之前一直强调:在mata矩阵中,数值型观测值不能在字符型矩阵中,字符型数据不能在数值型矩阵中,这里是怎么回事呢?

其实读入的txt文档的所有内容,都已被默认为是字符型,所以得到D2矩阵这样的结果也就不足为奇啦!

注:此推文中的图片及封面均来源于网络!如有雷同纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。 另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

文字编辑/王   明

技术总编/刘贝贝



往期推文推荐:

1. 高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3. 命令 sum2docx 输出统计量表到 docx 文件

4. reg2docx 报告你的实证结果吧!

5. 爬虫俱乐部又出新命令了 ——wordconvert 转换你的 word 文件

6. putdocx+wordconvert— 将实证结果输出到 Word .docx )文档

7. Stata 15 Markdown—— 没有做不到,只有想不到!

8. 矩阵和宏的故事

9. shellout







请到「今天看啥」查看全文