全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
19427 6
2013-07-30
有一个字符型变量d03a,其取值包含:
不哮喘了
不知道
不知道具体好处
不知道具体好处,医生开就有好处
不知道具体什么好处
不知道具体是什么
不知道具体是什么好处
不知道什么好处

精神好
具体好处不知道
具体好处不知道,医生开的就有好处
具体什么好处不知道
力气大,精神好
没吃过,不知道具体好处
没吃过,不知道具体什么好处
为了身体健康,不知道具体好处
请问如何才能选出其中包含“不知道”,“不知道具体好处”,“不知道什么具体好处”这样的观测?
有什么函数吗?
或者产生一个新变量,使包含这些字符时为1,不包含时为2.
先谢谢各位!

附上程序:
data one ;
input d04a $80.;
cards;
不哮喘了
不知道
不知道具体好处
不知道具体好处,医生开就有好处
不知道具体什么好处
不知道具体是什么
不知道具体是什么好处
不知道什么好处
精神好
具体好处不知道
具体好处不知道,医生开的就有好处
具体什么好处不知道
力气大,精神好
没吃过,不知道具体好处
没吃过,不知道具体什么好处
为了身体健康,不知道具体好处
;
run;
二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-30 18:24:27
find(varname,"不知道")
index也可以,使用这两个函数都可以
二维码

扫码加我 拉你入群

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

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

2013-7-30 18:47:02
Imasasor 发表于 2013-7-30 18:24
find(varname,"不知道")
index也可以,使用这两个函数都可以
谢谢版主,这样可以。
但是我想尽量包含的全一些,find函数里面可以有多个参数吗?比如 find(var, “不知道具体好处”,"不知道什么具体好处")
谢谢!
二维码

扫码加我 拉你入群

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

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

2013-7-30 18:48:20
henryyhl 发表于 2013-7-30 18:47
谢谢版主,这样可以。
但是我想尽量包含的全一些,find函数里面可以有多个参数吗?比如 find(var, “不 ...
不能包含多个,你只能一个个写了,另外一个方法是使用正规,可惜版主我不会
二维码

扫码加我 拉你入群

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

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

2013-7-30 20:12:27
Imasasor 发表于 2013-7-30 18:48
不能包含多个,你只能一个个写了,另外一个方法是使用正规,可惜版主我不会
好的,非常感谢。
二维码

扫码加我 拉你入群

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

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

2013-7-31 09:34:13
用正则就好

data two;
set one;
result=prxmatch('/不知道|不知道具体好处|不知道什么具体好处/', d04a);
run;

具体的正则表达式规则见下面的链接
http://www.pharmst.cn/viewthread.php?tid=47632

针对你的具体问题,可能需要向前或向后的正或负零宽断言,也就是找到“不知道”字符后,再保证前方或者后方,出现或者不出现某些字符

另外你在google中搜"Perl Regular Expressions Tip Sheet",下载第一个条目,然后里面有基本的应用,我一般都看这张表,比较方便
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群