查看原文
其他

frame框架进阶篇

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:王子一 ,中南财经政法大学金融学院

本文编辑:刘子艳

技术总编:戴   雯

Stata&Python云端课程来啦!

      好雨知时节,当春乃发生。为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》;关于Stata,爬虫俱乐部推出了系列课程,内容包括字符串函数正则表达式爬虫专题文本分析,可以随心搭配,价格美丽,物超所值,更多信息可查看Stata系列推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》与春天有个约会,爬虫俱乐部重磅推出文本分析网络课程。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!

友友们,又见面了。上回我们在《frame框架——我到底在哪个“房间”》这篇推文中介绍了frame框架的基础命令部分,今天我们继续为大家带来frame框架的应用,那我们开始吧,出发 👉


一、“巧妙”调用系列1调用当前框架中的变量或者观测值
我们在当前的框架调用数据集,并将数据集中的一部分信息复制到另一框架中去。这里我们使用到frame put varlist, into(newframename)命令,可以选择一定的变量复制到新的框架中去,整体示例如下:
frame reset sysuse autoframe put make price mpg,into(auto1)  //将变量复制到框架auto1中frame put make foreign gear weight, into(auto2)frame put if rep78 !=., into(auto3)    //将rep78不是缺失值的观测值复制到框架auto3中frame put if foreign, into(进口车)frame put if ~foreign, into(国产车)frame dir

2复制框架进行计算并将其调回原数据集当工作要求我们既保留原来数据集的完整性,又要进行运算,这时就可以通过多框架命令来完成我们的要求。如我们可以在当前框架下调用数据集,然后复制数据信息到另一框架中,并在新的框架中进行计算整合,最后将计算结果添加回原数据集中,这样既保留了数据集的完整性,又在另一框架中进行了结果计算。示例如下:
clear allsysuse auto, clearframe copy default subtask  //复制当前数据到新建框架subtaskframe change subtask      //从default切换到新建框架subtasksort price foreignkeep in 1/30                //修改了数据,只保留了前30个汽车数据sum price if foreign == 1return list                 //可以看到返回值r(mean) = 4117.143frame change default       //切换到default框架gen dmpg = cond(price>`r(mean)',1,0)   //生成一个变量dmpg,当price大于r(mean)时,dmpg为1,否则为0frame drop subtask         //在当前框架下删除subtask框架order make price dmpgbr

上述程序最终成功地将变量dmpg添加到default框架原始数据集中。

在这里需要注意:虽然r(mean)是在框架subtask中通过sum price if foreign == 1得到的,但它实际上是储存于Stata内存之中,与框架无关。


二、框架下执行命令可用frame前缀frame前缀是可以允许您在另一框架中执行一个或多个Stata命令,而不改变当前框架。如果执行单个Stata命令,在冒号后接具体指令即可,而花括号内可输入多行Stata命令,frame前缀使得我们可以更灵活地对框架中的数据进行处理。示例如下:
frame reset     //Stata将恢复到初始状态,即只有一个名为default的空白框架mkf new         //创建新的框架newframe new:sysuse census,clear    //执行单个Stata命令,可在冒号后接具体指令frames new {    //如果frame命令比较长,可以采用花括号的方式  summarize  describe  list state-pop18p in 1/3}frame结果如下:


三、保存框架中的数据集

保存命令很简单,save一下就可以,示例如下:

frame resetclearset obs 10gen x1 = uniform()gen x2 = uniform()frame rename default simulation //重命名框架为simulation
frame simulation:save simulation.dta,replace  //在框架下,保存框架数据集frame dir  //框架fr1前的星号消失,数据已被保存

这里我们还要提到一个小小知识点:

框架使Stata中preserve/restore运行得更快

在Stata16中,包含preserve/restore的程序会提高运行速度,因为Stata16是将数据复制并保存到隐藏的框架中去,那些隐藏框存储在Stata内存之中,而将数据复制到框架所需的时间,则比将数据复制到磁盘要短得多。

以上就是frame框架的基本应用啦,还有其他系列我们慢慢分享,友友们,我们下期再见~

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。



期待大家点赞、转发、关注呦~


对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!

往期推文推荐

 下拉选择框如何变成“小猫咪” | selenium小技巧

  Python中的运算符知多少?

  快来get缺失值的正确打开方式

  frame框架——我到底在哪个“房间”

如何使用Pandas读取txt文件?

基于MySQL数据库实现增量式爬取

寻找春日气息|本月最受欢迎的景点都在这里!

问世间情为何物,大数据也想参悟——后考研时代,何以解忧?唯有数据!

Python与数据库交互—浅述pymysql

偷懒小妙招|selenium之玩转鼠标键盘操作--鼠标篇

大家用Stata来“找茬”

“粉墨登场”——多期双重差分法(DID)的Stata操作

Python与百度地图合璧,绘制棒呆的热力地图

【数据可视化】统计图绘制神器:Seaborn

检索Stata推文的“任意门”学会了这些,分分钟提升你的毕业体验

【爬虫实战】双一流大学的月关注度

【爬虫实战】“中国人不吃这一套”——人民日报微博评论分析

进化的标签管理助手——elabel命令

“学术明星”——双重差分法(DID)的Stata操作

偷懒小妙招| selenium之玩转鼠标键盘操作(上)

【爬虫实战】南京地铁又上热榜——客流量分析

renfiles:批量重命名文件的利器

Stata中字符串的处理

物以类聚——浅述k-means聚类算法

我在哪里?调用高德API获取地址经纬度信息

关于我们 


微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存