楼主: eric_yan
2572 7

[Stata初级班] 关于数据转化,谢谢 [推广有奖]

  • 1关注
  • 11粉丝

博士生

55%

还不是VIP/贵宾

-

威望
0
论坛币
379 个
通用积分
1.0047
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
250 点
帖子
173
精华
0
在线时间
250 小时
注册时间
2009-5-3
最后登录
2021-7-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
连老师:
1.我用的数据库中的有个变量的数值是红色的,但是用了destring不行,显示出这个样子的:

. destring totalasset,replace ignore("")
totalasset contains nonnumeric characters; no replace
. destring totalasset,replace
totalasset contains nonnumeric characters; no replace
这种情况下怎么办?这个变量的数值我看着也很正常,但是就是转化不成,求赐教。

2.我用rencode这个命令成功了,但是要labelbook的时候出现这个问题,我该怎么办?
. rencode province,replace
. labelbook
too few quotes
r(132);



二维码

扫码加我 拉你入群

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

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

关键词:数据转化 Characters nonnumeric Character destring replace 数据库

沙发
arlionn 在职认证  发表于 2012-12-11 17:27:54 |只看作者 |坛友微信交流群
把那一列数据复制粘贴到 txt 文档中,发上来我看看。

使用道具

藤椅
eric_yan 发表于 2012-12-11 21:46:59 |只看作者 |坛友微信交流群
连老师,我不知道怎么在这里上传文件的,我把那个文件和问题发到你的邮箱里面了,请您指教,谢谢~

使用道具

板凳
eric_yan 发表于 2012-12-11 21:47:34 |只看作者 |坛友微信交流群
arlionn 发表于 2012-12-11 17:27
把那一列数据复制粘贴到 txt 文档中,发上来我看看。
连老师,我不知道怎么在这里上传文件的,我把那个文件和问题发到你的邮箱里面了,请您指教,谢谢~

使用道具

报纸
arlionn 在职认证  发表于 2012-12-12 09:48:40 |只看作者 |坛友微信交流群
*-https://bbs.pinggu.org/forum.php? ... &page=1#pid15861097

clear all
set memory 100m

use "C:\Documents and Settings\Administrator\桌面\2006修改后数据.dta", clear

*-将 totalasset 转换成数值变量
  gen totalasset_n = real(totalasset)
  
*-处理 province 变量
*-note: 该变量的名称需要统一
  gen prov = subinstr(province,"省","",.)   // 去掉"省"字
  replace prov = subinstr(prov,"市","",.)   //
  replace prov = subinstr(prov,"自治区","",.)   //
  replace prov = subinstr(prov,"维吾尔","",.)   //
  replace prov = strtrim(prov)   // 去掉多余的空格
  replace prov = "宁夏" if strmatch(prov,"宁夏*")
  replace prov = "山西" if strmatch(prov,"山西*")
  replace prov = "山东" if strmatch(prov,"山东*")
  replace prov = "青海" if strmatch(prov,"青海*")
  replace prov = "北京" if strmatch(prov,"北京*")
  local s "黑龙江"
  replace prov = "`s'" if strmatch(prov,"`s'*")
  local s "内蒙"
  replace prov = "`s'" if strmatch(prov,"`s'*")
  local s "新疆"
  replace prov = "`s'" if strmatch(prov,"`s'*")  
  local s "四川"
  replace prov = "`s'" if strmatch(prov,"`s'*")
  local s "吉林"
  replace prov = "`s'" if strmatch(prov,"`s'*")
  local s "广东"
  replace prov = "`s'" if strmatch(prov,"`s'*")  
  local s "广西"
  replace prov = "`s'" if strmatch(prov,"`s'*")  
  local s "河北"
  replace prov = "`s'" if strmatch(prov,"`s'*")
  local s "贵州"
  replace prov = "`s'" if strmatch(prov,"`s'*")  
  order prov*
  tab prov   
  
  *-Note: 还有很多不规则的名称,你需要逐一处理,参考stata初级视频数据处理部分的俄内容
  *-由于时间限制,我无法一一帮你弄好了。
  
  *-完成上述处理后,执行如下命令建立数字文字对应表
    encode prov, gen(prov2) label(prov)
  *查看数字-文字对应表
    label list prov
  
  

使用道具

地板
eric_yan 发表于 2012-12-13 13:05:19 |只看作者 |坛友微信交流群
arlionn 发表于 2012-12-12 09:48
*-https://bbs.pinggu.org/forum.php? ... &page=1#pid15861097

clear all
谢谢连老师,我会认真弄好的·~

使用道具

7
eric_yan 发表于 2012-12-13 16:16:34 |只看作者 |坛友微信交流群
arlionn 发表于 2012-12-12 09:48
*-https://bbs.pinggu.org/forum.php? ... &page=1#pid15861097

clear all
连老师,我在处理的过程中,不知道如何删除其中的无效变量,请问如何用label drop 删除其中的某个数值?

.    label list prov
prov:
         
           1 °²»Õ
           2 ±±¾©
           3 ¸£½¨
           4 ¸ÊËà
           5 ¹ã¶«
           6 ¹ãÎ÷
           7 ¹óÖÝ
           8 º£ÄÏ
           9 ºÓ±±
          10 ºÓÄÏ
          11 ºÚÁú½­
          12 ºþ±±
          13 ºþÄÏ
          14 ¼ªÁÖ
          15 ½­ËÕ
          16 ½­Î÷
          17 李会军
          18 ÁÉÄþ
          19 Ãó´¨
          20 Äϳä
          21 ÄÚÃÉ
          22 ÄþÏÄ
          23 Çຣ
          24 ȪÖÝÊÐ

例如里面的1-24都是label,我想删除第17 李会军,怎么办,谢谢~~

使用道具

8
arlionn 在职认证  发表于 2012-12-13 17:55:56 |只看作者 |坛友微信交流群
help label
看看如下命令:
label define lblname # "label" [# "label" ...] [, add modify replace nofix]
可以使用里面的 modify 或 replace 选项来达到你的目的。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 01:24