楼主: carweed
5258 19

[字符问题求助] 一个字符串“张三,李四,王五”,如何得到其中包含几个“,”呢?谢谢大家! [推广有奖]

11
carweed 发表于 2013-6-19 13:31:23
蓝色 发表于 2013-6-19 13:24
如果统计姓名个数

gen word_num=wordcount(subinstr(Ananm,",","  ",.))
wordcount()的妙用啊!又学了一个字符串处理函数,谢谢蓝版主!

12
carweed 发表于 2013-6-19 13:31:53
h3327156 发表于 2013-6-19 13:16
我猜楼主应当是要算有几个人名,但透过逗号另一条路来取得。我乱猜的。蓝色版主别当真。
真聪明!就是要统计有几个人名的 ~~

13
h3327156 发表于 2013-6-19 13:34:50
蓝色 发表于 2013-6-19 13:24
如果统计姓名个数

gen word_num=wordcount(subinstr(Ananm,",","  ",.))
蓝色版主,我原本的思路是如您所用的,就是用wordcount,
而建立的这个变量扣掉1,恰好就是逗号数。

14
蓝色 发表于 2013-6-19 13:38:36
stata的许多函数很好用

15
sungmoo 发表于 2013-6-19 15:30:20
*就计算人名数(或者“非空分割部分”数)而言,以下可能更通用一些,缺点是中间会生成一堆变量

split ananm, p(",") g(tttt)
egen s=rownonmiss(tttt*),s
drop tttt*

*优点是,可以指出任意指定字符串把原字符串分割成几部分(各部分可以含空格)。

(若利用字符串长度差来计算,需要考虑指定字符串的长度。就计算所含的指定字符串的个数而言,字符串长度差方法更通用
https://bbs.pinggu.org/thread-506977-1-1.html
https://bbs.pinggu.org/thread-1032386-1-1.html
https://bbs.pinggu.org/thread-2176695-1-1.html
(若利用单词数来计算,需要考虑原字符串是否包含空格)

*缺点是,对于“,,A,”这种字符串,无法计算其中“,”的数量。

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员
h3327156 + 5 + 5 + 5 高人~顶礼

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

16
carweed 发表于 2013-6-21 23:08:48
sungmoo 发表于 2013-6-19 15:30
*就计算人名数(或者“非空分割部分”数)而言,以下可能更通用一些,缺点是中间会生成一堆变量

split a ...
厉害!!!很巧妙!
O(∩_∩)O谢谢!

17
kerrydu 发表于 2013-8-8 23:30:41
mark 一下

18
peyzf 发表于 2013-8-9 01:23:28
merci.

19
Lin. 发表于 2013-10-17 13:55:19
nice

20
小非 发表于 2014-6-12 17:51:09
mark

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

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