楼主: frederic7
5272 6

如何截取某个变量的部分字符 [推广有奖]

  • 13关注
  • 3粉丝

副教授

2%

还不是VIP/贵宾

-

威望
0
论坛币
2031 个
通用积分
0.7200
学术水平
8 点
热心指数
18 点
信用等级
4 点
经验
9300 点
帖子
581
精华
0
在线时间
453 小时
注册时间
2009-9-26
最后登录
2022-3-19

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
SAS用的不怎么熟悉,
现在有个数据集:

A11 6 A34 A43 1169 A65 A75 4 A93 A101 4 A121 67 A143 A152 2 A173 1 A192 A201 1
A12 48 A32 A43 5951 A61 A73 2 A92 A101 2 A121 22 A143 A152 1 A173 1 A191 A201 2
A14 12 A34 A46 2096 A61 A74 2 A93 A101 3 A121 49 A143 A152 1 A172 2 A191 A201 1
A11 42 A32 A42 7882 A61 A74 2 A93 A103 4 A122 45 A143 A153 1 A173 2 A191 A201 1
A11 24 A33 A40 4870 A61 A73 3 A93 A101 4 A124 53 A143 A153 2 A173 2 A191 A201 2
A14 36 A32 A46 9055 A65 A73 2 A93 A101 4 A124 35 A143 A153 1 A172 2 A192 A201 1
A14 24 A32 A42 2835 A63 A75 3 A93 A101 4 A122 53 A143 A152 1 A173 1 A191 A201 1
A12 36 A32 A41 6948 A61 A73 2 A93 A101 2 A123 35 A143 A151 1 A174 1 A192 A201 1
A14 12 A32 A43 3059 A64 A74 2 A91 A101 4 A121 61 A143 A152 1 A172 1 A191 A201 1
A12 30 A34 A40 5234 A61 A71 4 A94 A101 2 A123 28 A143 A152 2 A174 1 A191 A201 2
A12 12 A32 A40 1295 A61 A72 3 A92 A101 1 A123 25 A143 A151 1 A173 1 A191 A201 2

我现在已经导入到SAS中了,
但是现在想把第一列的A1剔除,第三列的A3剔除,以此类推,第20列的A20给剔除。

问:有啥办法?
感觉SAS对数据的预处理不是很方便。
GCD.txt (78.9 KB)
二维码

扫码加我 拉你入群

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

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

关键词:第20 数据集 预处理 如何

啊哦
沙发
bobguy 发表于 2014-11-9 03:24:00 |只看作者 |坛友微信交流群
SAS provides many functions to handle string operations. Here is an example.

data Tmp;
length c1 c3 $3;
input c1 c2 c3;
nc1=substr(c1,3,1);
nc3=char(c3,3);
cards;
A11 6 A34
A12 48 A32
A14 12 A34
;

proc print;run;

使用道具

藤椅
420948492 发表于 2014-11-9 09:39:29 |只看作者 |坛友微信交流群
上传个样例数据集

使用道具

板凳
frederic7 发表于 2014-11-9 10:54:49 |只看作者 |坛友微信交流群
420948492 发表于 2014-11-9 09:39
上传个样例数据集
已经上传好了,谢谢~

使用道具

报纸
frederic7 发表于 2014-11-9 10:54:53 |只看作者 |坛友微信交流群
420948492 发表于 2014-11-9 09:39
上传个样例数据集
已经上传好了,谢谢~

使用道具

地板
yongyitian 发表于 2014-11-9 13:26:47 |只看作者 |坛友微信交流群
  1. data _null_;
  2. infile "C:\Temp\GCD.txt";
  3.   if _n_ = 1 then do;
  4.       input;
  5.       n=countw(_infile_);
  6.      call symput("n", put(n, 3.));
  7.   end;
  8. run;

  9. data a;
  10. infile "C:\Temp\GCD.txt";
  11.   array col[&n] $;
  12.   input;
  13.    do i = 1 to &n;
  14.      col[i]= scan(_infile_, i);
  15.       ndig = length(compress(put(i, 3.)));
  16.      if substr(col[i],1,1)="A" then col[i]=substr(compress(col[i]), 2+ndig);
  17.   end;
  18.   drop i ndig;
  19. run;
复制代码

使用道具

7
mingfeng07 学生认证  发表于 2014-11-9 14:01:09 |只看作者 |坛友微信交流群
  1. proc import out=a file="C:\Users\mingfeng07\Desktop\GCD.txt" dbms=dlm replace;
  2. getnames=no;
  3. run;
  4. data b(drop=i);
  5. set a;
  6. array a{*} _character_;
  7. do i=1 to dim(a);
  8. a(i)=substr(compress(a(i)),length(compress(a(i)))-1,1);
  9. end;
  10. run;
复制代码
已有 1 人评分经验 收起 理由
李会超 + 24 分析的有道理

总评分: 经验 + 24   查看全部评分

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

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

GMT+8, 2024-4-24 17:48