楼主: marui415
6395 9

[原创博文] 请教:怎么筛选一个变量中含某一特定值的观测 [推广有奖]

  • 1关注
  • 0粉丝

高中生

65%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
225 点
帖子
30
精华
0
在线时间
26 小时
注册时间
2011-3-11
最后登录
2013-5-5

楼主
marui415 发表于 2012-7-26 14:59:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有一个变量,是一个代码,由十位数构成,我想筛选这个变量中前4位数是含某一特定值的观测(比如前四位是1101)
该怎么编程?(本人新手,能否给个完整代码)
谢谢各位大侠!
二维码

扫码加我 拉你入群

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

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

关键词:本人新手 怎么编程 各位大侠 怎么编程

回帖推荐

你猜~~~ 发表于2楼  查看完整内容

data temp; input x; cards; 1101287321 3219837132 7120938034 8219873043 1101983454 ; run; data temp2; set temp; y=substr(x,3,4); if y='1101'; run;

本帖被以下文库推荐

沙发
你猜~~~ 发表于 2012-7-26 15:17:25
data temp;
input x;
cards;
1101287321
3219837132
7120938034
8219873043
1101983454
;
run;

data temp2;
set temp;
y=substr(x,3,4);
if y='1101';
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 2 + 2 精彩帖子

总评分: 经验 + 2  论坛币 + 2   查看全部评分

藤椅
stormhoof 发表于 2012-7-26 15:21:16
data a;
input x 10.;
cards;
1101128765
1234000023
;
run;

data b;
set a;
if substr(put(x,$10.),1,4)=1101 then output;
run;
举个例子。。

板凳
marui415 发表于 2012-7-26 15:32:18
你猜~~~ 发表于 2012-7-26 15:17
data temp;
input x;
cards;
十分感谢!

报纸
marui415 发表于 2012-7-26 15:40:15
stormhoof 发表于 2012-7-26 15:21
data a;
input x 10.;
cards;
貌似你的更厉害点!学习了!谢谢哦!

地板
hcydlee 发表于 2012-7-26 15:48:13
最近在学正则表达式,就用正则表达式写一个吧:

data a ;
    input string $10.;
    if _n_=1 then re=prxparse("/^1101\d{6}/");
    retain re;
    if prxmatch(re,string) then output;    keep string;
    cards;
3219345132
2345938034
5467873043
1101343454
;
run;

80 字节以内
不支持自定义 Discuz! 代码

7
hcydlee 发表于 2012-7-26 15:51:15
stormhoof 发表于 2012-7-26 15:21
data a;
input x 10.;
cards;
"1101"
80 字节以内
不支持自定义 Discuz! 代码

8
YueweiLiu 发表于 2012-7-27 19:46:21
hcydlee 发表于 2012-7-26 15:48
最近在学正则表达式,就用正则表达式写一个吧:

data a ;
alternatively,
  1. data temp;
  2.         input x $20.;
  3. cards;
  4. 1101287321
  5. 3219837132
  6. 7120938034
  7. 8219873043
  8. 1101983454
  9. ;

  10. data want;
  11.         set temp;
  12.         if prxmatch("m/^1101/",x);
  13. run;
复制代码

9
YueweiLiu 发表于 2012-7-27 19:47:23
如果只要“1101”开头的话,可以用一个小tip
  1. data want;
  2.         set temp;
  3.         if x=:"1101";
  4. run;
复制代码

10
lingdan1112 学生认证  发表于 2015-4-12 19:33:17
stormhoof 发表于 2012-7-26 15:21
data a;
input x 10.;
cards;
谢谢,真的很有用。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 22:29