查看原文
其他

如何简洁地列出指定属性的变量?ds命令来了!

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

本文作者:寇晓璇,中南财经政法大学统计与数学学院

本文编辑:赵冰洁

技术总编:余术玲 

爬虫俱乐部云端课程

  爬虫俱乐部于2020年暑期在线上举办的Stata与Python编程技术训练营和Stata数据分析法律与制度专题训练营已经圆满结束啦~应广大学员需求,我们的课程现已在腾讯课堂全面上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦》或《8月Stata数据分析法律与制度专场来啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠券!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元

导读:

在处理数据时,若想一目了然地查看当前数据集中的所有变量名,或是想查看指定变量类型的变量名等等,这时ds命令就派上用场啦!简单来说,ds命令能够简洁地列出具有指定属性的变量,还可以列出数据中变量的其他特征并进行编辑。下面就来看一下它的具体用法吧!

一、语法——简单篇

ds [, alpha]

选项描述
not列出未在变量列表(ds后面指定的变量列表)中指定的变量
alpha按字母顺序列出变量
detail显示更多细节
skip()变量之间的空格数(默认是skip(2))
varwidth()显示变量名的宽度(默认是varwidth (12))

1.ds命令单独用可以将所有变量名列出

clear
use https://www.stata-press.com/data/r16/educ3     //导入数据集
ds       //列出当前数据集所有变量名
ds,skip(4)      //列出当前数据集所有变量名,变量间距为4
ds,varwidth(5)     //列出当前数据集所有变量名,变量名宽度为5

当设定varwidth为5时,变量名宽度大于5的不能显示完全,应当根据变量名长度选择合适的varwidth。可见,若是有千万个变量以上的数据集出现在你面前时,用ds查看变量名是十分方便的。

2.ds命令后加“ * ”或“ - ”可以有条件的列举变量

ds p*               //列出当前数据集所有p开头的变量名
ds pop*, not       //列出所有不以pop开头的变量名
ds popcol-clfue    //按顺序列出当前数据集中popcol到clfue的原数据变量名

3.ds命令后加“, alpha”可以按字母顺序显示变量名称

ds, alpha   //按字母顺序纵向列出当前数据集中所有变量名

4.ds命令后加”,detail”可以详细的显示变量信息

ds, detail     //显示当前数据集中变量的详细信息

二、语法——进阶篇

ds [varlist] [, options]

选项描述
has(spec)描述符合该规范的子集
not(spec)描述不符合该规范的子集
insensitive执行不区分大小写的模式匹配
indent缩进输出(很少使用)
概括来说,可以分为has()和not()两大“派别”,我们从字面意思也很容易理解,“有”和“无”,即has是列举出括号中的指定类型,而not是列举出除括号指定类型外的类型。其中括号中的spec包含如下:
选项描述
type typelist指定类型
format patternlist显示格式匹配模式列表
varlabel [patternlist]变量标签/变量标签匹配模式列表
char [patternlist]特征/特征匹配模式列表
vallabel [patternlist]值标签/值标签匹配模式列表

1.ds命令后加”, has(type string)”可以显示所有字符型变量名

clear
sysuse auto
ds, has(type string)    //列举所有字符型变量名

  上例中的typelist为string,一般而言,typelist可以包含一种或多种类型,可以是数值型(numeric)、字符型(string)、整型(int)、浮点型(float)等,还可以是数组(numlist)。

2.ds命令后加”, has(format *f)”可以显示所有浮点型变量的名称

ds, has(format *f)     //列举所有浮点型变量名

同理,
ds, has(format *c)     //列出使用逗号格式的变量名

三、存储结果

       使用ds命令还能够生成局部宏,可以调用局部宏来对变量进行运算、排序或描述性统计等。

clear
sysuse auto  
ds, has(type string)

edit `r(varlist)'    //列出所有字符串变量并弹出包含它们的数据编辑器

clear
sysuse auto
ds, has(type numeric)

order `r(varlist)'    //列出所有数值型变量并将它们重新定位到数据集的开头

ds, has(type numeric)

summarize `r(varlist)'   //列出所有数值型变量并对其进行描述性统计

  

通过以上方法可以快速、准确的对变量进行排序和描述性统计。今天对ds命令的介绍就先到这,快去着手试试吧!




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

如何在Python中进行描述性统计分析?

分析师和他们的雇主重视与管理层接触吗?——分析师参与盈余电话会议的研究

繁忙的董事与公司业绩:来自并购的证据
使用Python接口读取CSMAR数据
列表生成式|让你的代码简洁又美观
Stata中变量观测值的亲密伙伴——levelsof命令

爬虫俱乐部开发的命令更新及常见问题说明

Seminar | 道德培训真的有用吗?

网络爬虫入门之requests 库的基本使用——以亚马逊图书界面为例
reduce()函数和filter()函数闪亮登场
“环环”入扣之foreach命令

统计年鉴数据整理小技巧

Seminar | 作为飞行员,我比别的CEO多了什么?

利用TensorFlow构建前馈神经网络

推文合集(1)| Stata学习者必看的n篇推文!

Seminar | 诚信的价值

利用tushare获取股票数据及实现可视化

从Excel到Stata的“摆渡车”——import excel命令

光阴十载,见证了《经济研究》中的“高被引”

利用tushare获取股票数据

         在Python中实现Stata的stack功能

关于我们


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

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

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

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