楼主: 匿名
3510 5

[Stata] 数据管理(三):数值/字符变量转化、变量值标签 [推广有奖]

匿名网友
楼主
匿名网友  发表于 2015-7-9 13:07:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

Stata基础操作:数据管理
Stata WorkShop2:Data Management
Chang Y. Chung
Princeton University

  1. // Stata Date & Time. In-depth Topic of Stata Workshop 2 (Data Management)
  2. // by Chang Y. Chung 2014-09-16

  3. //两种变量存储格式:数值型与字符型
  4. /*
  5. |--------|---------|
  6. |  byte  |   str1  |
  7. |  int   |   str2  |
  8. |  long  |   ...   |
  9. | float  | str2045 |
  10. | double |   strL  |
  11. |--------|---------|
  12. */
  13. /*数值型变量按照精度分为5种,字符型变量通常描述特征信息,
  14.   但也可以由数字构成,这时仅代表标识符,如身份证号码*/
  15.    clear all
  16.    sysuse auto
  17. // 查看auto.dta中的变量及存储类型
  18.    des
  19. // 变量make为唯一的字符型变量,前四个数据
  20.    list make in f/4
  21. // 其余变量为数值型,price前三个数据:
  22.    list price in -3/L
  23. //数字型变量转字符型:
  24. /*方法一:string:*/
  25.    gen strID = string(2340285 + _n, "%09.0f")
  26.    list strID in 1/4
  27. /*方法二: tostring */
  28.   tostring mpg,replace
  29.   tostring price,gen(price1)
  30. //字符型转化为数值型
  31. /*
  32.   real()函数:字符中没有特殊符号,一般用法:
  33.   generate double nVar = real(strVar)
  34.   其中,增添double改变了默认存储的精度,举例如下:
  35. */
  36. // strID --> numeric ID,其中
  37.    gen double nID = real(strID)
  38.    list *ID in 1/4   
  39. /* 如含特殊字符如“空格 - %”等,real()则会返回缺失值,可考虑:
  40.    destring:附加ignore,如*/
  41.       clear
  42.       input str10 date
  43.           "2020-07"
  44.           "1606"         
  45.       end
  46.       gen date1 = real(date)
  47.       browse
  48.       destring date,replace ignore("-")
  49. // 删除
  50.    drop strID nID

  51. //显示格式
  52. /*
  53. | -------- | ------------------------------ |
  54. | %#.#g    | %8.0g  price:4697-->4697       |
  55. | %#.#f    | %8.2f  price:4697-->4697.00    |
  56. | %#.#gc   | %8.0gc price:4697-->4,697      |
  57. | %#.#fc   | %8.2fc price:4697-->4,697.00   |
  58. | -------- | ------------------------------ |
  59. */
  60. %为通用格式,后面添加"-"即为:左对齐
  61. 更多参考help format
  62. */
  63.    // 查看auto中变量的显示格式
  64.    des
  65.    
  66.    // price的最后三个变量值:
  67.    list price in -3/L
  68.    // 改变price的显示格式,两位小数显示
  69.    format price %8.2f
  70.    list price in -3/L
  71.    
  72.    // 前面添加2位小数(对齐用,如编号id)
  73.    format price %06.0f
  74.    list price in -3/L
  75.    
  76.    // 恢复
  77.    format price %8.0gc
  78.    
  79.    
  80. // 变量值标签

  81.    // 查看变量标签,如foreign
  82.    sysuse auto
  83.    des foreign

  84.    // 查看变量值标签
  85.    label list

  86.    // 频数表
  87.    tab foreign
  88.    
  89.    // 附加nolabel:查看变量值标签对应的数字
  90.    tab foreign, nolabel

  91.    //以foreign为例,暂先移除标签,然后演示如何添加变量值标签
  92.    label values foreign

  93.    // 或者直接将origin标签删除
  94.    label drop origin

  95.    // foreign的频数表中不再含有标签
  96.    tab foreign
  97.    
  98.    //给变量值加标签的方法(2步)
  99.    // 1.定义标签
  100.    // 2.将其关联到foreign的观测值中
  101.    label define origin 1 "Foreign" 0 "Domestic"
  102.    label values foreign origin

  103.    // 查验
  104.    tab foreign


  105.    // numlabel_为变量值标签加数字前缀
  106.    //这样可以不附加nolabel,便可实现变量值标签文字数字对应
  107.    numlabel origin, add

  108.    tab foreign

  109.    // 移除数字前缀
  110.    numlabel origin, remove
复制代码
  1. /*
  2.         函数      返回值类型            含义
  3. |-----------------------------------------------------
  4. |    reverse()    | 字符型 |        倒转字符顺序        
  5. |      trim()     | 字符型 |     去掉字符前后空字符     
  6. |     ltrim()     | 字符型 |      去掉字符前空字符      
  7. |     rtrim()     | 字符型 |      去掉字符后空字符      
  8. |     string()    | 字符型 |      将数值转化为字符      
  9. |      real()     | 数值型 |      将字符转化为数值      
  10. |   wordcount()   | 数值型 |          字数统计         
  11. | substr(s,n1,n2) | 字符型 |    将s的n1-n2位提取出来   
  12. |   strpos(a,b)   | 数值型 | 获取b在整个a中首次出现位置
  13. |     length()    | 数值型 |          字符长度         
  14. |     proper()    | 字符型 |         首字母大写         
  15. |------------------------------------------------------
  16. */
复制代码

inspect:负值/零值/正值/唯一值/缺失值/直方图

  1. sysuse auto,clear
  2. inspect  //所有变量(默认)
  3. inspect price  
复制代码

1.JPG


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:字符变量 数据管理 变量值 值标签 Management 测量误差 校正 经典 模型

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 100 + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  论坛币 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

本帖被以下文库推荐

沙发
xddlovejiao1314 学生认证  发表于 2015-7-24 14:11:38
谢谢分享,好贴。
已有 1 人评分论坛币 热心指数 收起 理由
niuniuyiwan + 15 + 1 精彩帖子

总评分: 论坛币 + 15  热心指数 + 1   查看全部评分

藤椅
niuniuyiwan 在职认证  发表于 2015-10-10 20:46:02
  1. /*
  2.         函数      返回值类型            含义
  3. |-----------------------------------------------------
  4. |    reverse()    | 字符型 |        倒转字符顺序        
  5. |      trim()     | 字符型 |     去掉字符前后空字符     
  6. |     ltrim()     | 字符型 |      去掉字符前空字符      
  7. |     rtrim()     | 字符型 |      去掉字符后空字符      
  8. |     string()    | 字符型 |      将数值转化为字符      
  9. |      real()     | 数值型 |      将字符转化为数值      
  10. |   wordcount()   | 数值型 |          字数统计         
  11. | substr(s,n1,n2) | 字符型 |    将s的n1-n2位提取出来   
  12. |   strpos(a,b)   | 数值型 | 获取b在整个a中首次出现位置
  13. |     length()    | 数值型 |          字符长度         
  14. |     proper()    | 字符型 |         首字母大写         
  15. |------------------------------------------------------
  16. */
复制代码

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 20 + 20 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 20  论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

板凳
niuniuyiwan 在职认证  发表于 2015-10-11 16:17:59

inspect:负值/零值/正值/唯一值/缺失值/直方图

  1. sysuse auto,clear
  2. inspect  //所有变量(默认)
  3. inspect price  
复制代码

1.JPG



已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 20 + 20 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 20  论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

报纸
xddlovejiao1314 学生认证  发表于 2015-10-12 11:31:00
好贴,再次mark一下。

地板
niuniuyiwan 在职认证  发表于 2015-10-12 13:08:18
xddlovejiao1314 发表于 2015-10-12 11:31
好贴,再次mark一下。
感谢师兄一路支持!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-3 16:26