楼主: lswgdhy
5890 12

[感谢sungmoo和voodoo]为何部分符号格式的“数字”不能用destring来转化 [推广有奖]

  • 0关注
  • 2粉丝

VIP

已卖:2334份资源

副教授

56%

还不是VIP/贵宾

-

威望
0
论坛币
321215 个
通用积分
65.1337
学术水平
5 点
热心指数
12 点
信用等级
7 点
经验
16437 点
帖子
638
精华
0
在线时间
644 小时
注册时间
2005-10-4
最后登录
2024-11-22

楼主
lswgdhy 发表于 2010-4-22 16:35:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有一批数据,部分是年份编号,全部为数字,但格式为符号,因此颜色为红色,采用destring命令转化为数字,部分可以(红色数字符号转化为黑色数字),但部分转化后仍不是数字格式(红色数字符号转化为蓝色数字符号,蓝色符号的type为long,format为%8.0g)。以前曾经把这个符号转化为数字,但不记得如何转化的了,现求教,如何将其转化为数字格式,以便进行加减运算。
二维码

扫码加我 拉你入群

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

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

关键词:destring sungmoo string tring Sung 格式 符号 数字 destring

未经一番寒彻骨,哪得梅花扑鼻香

沙发
sungmoo 发表于 2010-4-22 17:26:41
可否贴出数据?

藤椅
lswgdhy 发表于 2010-4-23 11:15:38
2# sungmoo

数据上传了,转成蓝色符号用的是另一个命令,不是destring,现又把蓝色转回红色了。

数据.rar
下载链接: https://bbs.pinggu.org/a-616338.html

130.12 KB

本附件包括:

  • 数据.dta

未经一番寒彻骨,哪得梅花扑鼻香

板凳
蓝色 发表于 2010-4-23 12:23:23
. table  year

----------------------
     year |      Freq.
----------+-----------
        0 |         15
     0000 |          1
     0001 |          1
     0198 |          2
       02 |          1
     02年 |          1
       10 |          1
     1189 |          1
     1196 |          1
      120 |          1
     1600 |          1
     1714 |          1
     1730 |          1
     1735 |          1
     1790 |          1
     1828 |          1
     1830 |          1
     1838 |          1
     1841 |          1
     1846 |          1
     1851 |          1
     1852 |          3

报纸
蓝色 发表于 2010-4-23 12:24:25
含有  02年  这样的数据,无论如何也不能转变成数值型啊

地板
sungmoo 发表于 2010-4-23 15:26:33
lswgdhy 发表于 2010-4-23 11:15 数据上传了,转成蓝色符号用的是另一个命令,不是destring,现又把蓝色转回红色了。
就是这一个“年”字,还有“ 197”。

经查,“197”前的这个字符的ASCII值是127,即字符char(127)。

把“年”及“ 197”中的前字符删除即可。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 20 + 8 + 1 + 1 + 1 热心帮助其他会员

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

7
lswgdhy 发表于 2010-4-23 15:42:00
5# 蓝色

再请教,现在我把文字删除了,为何还不行?数据见附件。
. table year
----------------------
     year |      Freq.
----------+-----------
       10 |          1
     1189 |          1
     1196 |          1
      120 |          1
     1600 |          1
     1714 |          1
     1730 |          1
     1735 |          1
     1790 |          1
     1828 |          1
     1830 |          1
     1838 |          1
     1841 |          1
     1846 |          1
     1851 |          1
     1852 |          3
     1853 |          1
     1855 |          1
     1856 |          2
     1860 |          1
     1861 |          1
     1862 |          2
     1864 |          1
     1865 |          4
     1866 |          3
     1870 |          1
     1871 |          1
     1872 |          1
     1875 |          2
     1876 |          1
     1878 |          1
     1879 |          2
     1881 |          1
     1884 |          2
     1885 |          3
     1888 |          1
     1889 |          2
     1890 |          4
     1893 |          1
     1894 |          4
     1895 |          3
     1896 |          4
     1897 |          5
     1898 |          8
     1899 |          1
     1900 |         10
     1901 |          8
     1902 |          5
          1979 |      1,479
      198 |          1
     1980 |      1,711
     1981 |      1,064
     1982 |      1,334
     1983 |      1,276
     1984 |      2,584
        1998 |     13,571
     1999 |     13,294
        2 |          1
      200 |          6
     2000 |     13,480
     2001 |     11,360
     2002 |      3,400
     2003 |         15
     2101 |          1
     2202 |          1
     3001 |          3
     4994 |          1
       50 |          5
       56 |          1
       62 |          1
       66 |          1
     6997 |          1
     7998 |          1
       86 |          1
       88 |          2
       89 |          2
       92 |          1
       93 |          3
       94 |          1
       95 |          1
       96 |          4
       97 |          5
       98 |          2
     9961 |          1
     197 |          1
----------------------
. destring year,g (newyear)
year contains nonnumeric characters; no generate,不知道哪些数据还含有非数字特征,如果只选取极小的一部分又能转化为数字。如何识别出这些非数字特征的观察值。

数据2.rar

1.09 KB

本附件包括:

  • 数据2.dta

未经一番寒彻骨,哪得梅花扑鼻香

8
sungmoo 发表于 2010-4-23 15:59:02
lswgdhy 发表于 2010-4-23 15:42 现在我把文字删除了,为何还不行?
trim()删除的是空格char(32)。
已有 1 人评分论坛币 收起 理由
dxystata + 10 好的意见建议

总评分: 论坛币 + 10   查看全部评分

9
voodoo 发表于 2010-4-23 20:20:21
蓝色 发表于 2010-4-23 12:24
含有  02年  这样的数据,无论如何也不能转变成数值型啊
用destring命令的ignore()选项可以完成转化,如:destring year, gen(newyear) ignore("年")。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 20 + 8 + 1 + 1 + 1 热心帮助其他会员

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

巫毒上传,必属佳品!
坛友下载,三思后行!

10
voodoo 发表于 2010-4-23 20:34:22
lswgdhy 发表于 2010-4-23 15:42
5# 蓝色

再请教,现在我把文字删除了,为何还不行?数据见附件。
. table year
----------------------
     year |      Freq.
----------+-----------
       10 |          1
     1189 |          1
    ----------------------
. destring year,g (newyear)
year contains nonnumeric characters; no generate,不知道哪些数据还含有非数字特征,如果只选取极小的一部分又能转化为数字。如何识别出这些非数字特征的观察值。
   
help destring, 我发现“... destring also ignores any leading or trailing spaces...”,事实上用不着8楼sungmoo的trim()函数,但楼主说命令还不能用我就感觉有点奇怪啦。花个论坛币下载你的数据看看(楼主这么有钱,应该发个悬赏贴才对嘛。:-))

如果你想知道哪些数据含有非数字特征,用如下命令试试:
use 数据.dta, clear
destring year, gen(newyear) force
// 看看到底是怎么回事
bysort year: list year if newyear == . & _n == 1
// ……发现year含有字符空值("")、"年",还有个很奇怪的" 197"(并非空格" ",trim()命令无效)。
drop newyear
// 用destring命令的ignore()选项将找出的非数字特征字符去除
destring year, gen(newyear) force ignore("年" " ")     // 将log中197前的“空格” 拷至ignore()中。
// 此时nyear还有809个空值,原因为year本来就是字符空值。
已有 1 人评分论坛币 收起 理由
dxystata + 20 好的意见建议

总评分: 论坛币 + 20   查看全部评分

巫毒上传,必属佳品!
坛友下载,三思后行!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-27 15:15