楼主: grapeade18
2504 6

[问答] sas里读取变量值问题求助 [推广有奖]

  • 0关注
  • 0粉丝

小学生

0%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
36 点
帖子
4
精华
0
在线时间
0 小时
注册时间
2011-9-14
最后登录
2011-9-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
很急, 谢谢回答的帅锅美女了~

现在有变量x,      观测值分别为:  aa, bb, cc, dd, ee.....  一共几百个

我想要的结果是得到输出一句话为 “aa+bb+cc+dd+ee+..... "

我想是不是应该先建立一些变量 X1= aa, X2=bb, X3= cc, X4=dd, X5=ee, 再用catx 做。 但是也不知道怎么建立这些x1- x5.
想了一天了都没有结果  :(  不知道思路对不对
二维码

扫码加我 拉你入群

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

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

关键词:变量值 不知道 CAT 一句话 观测值 美女

沙发
zhangyangsmith 发表于 2011-9-14 16:15:36 |只看作者 |坛友微信交流群
Is this what you want?
  1. DATA tmp;
  2.   INPUT x $;
  3.   CARDS;
  4. aa
  5. bb
  6. cc
  7. dd
  8. ee
  9. ff
  10. gg
  11. hh
  12. ii
  13. jj
  14. kk
  15. ;
  16. RUN;

  17. DATA _null_;
  18.   SET tmp end=last;
  19.   LENGTH snt $ 200;
  20.   IF _N_ eq 1 THEN
  21.     snt=STRIP(x);
  22.   ELSE snt=STRIP(snt)||'+'||STRIP(x);
  23.   RETAIN snt;
  24.   IF last THEN PUT snt=;
  25. RUN;
复制代码

使用道具

藤椅
yumenderen 发表于 2011-9-14 17:31:13 |只看作者 |坛友微信交流群
楼上的已决解决了,我这里提供另一种思路:
data a;
input x $;
datalines;
aa
bb
cc
dd
ee
;
run;
proc sql;
select x into :name separated by "+" from a;quit;
%put &name;

使用道具

板凳
yumenderen 发表于 2011-9-15 08:46:48 |只看作者 |坛友微信交流群
zhangyangsmith 发表于 2011-9-14 16:15
Is this what you want?
想请教一下
我试了下,为什么在你的程序中如果去掉strip函数就不行了呢?不能直接引用文本么?
还有为什么要加retain snt,表示啥意思啊

使用道具

报纸
grapeade18 发表于 2011-9-15 09:29:08 |只看作者 |坛友微信交流群
zhangyangsmith 发表于 2011-9-14 16:15
Is this what you want?
谢谢~!!现在有个小更新 要请教一下

现在有变量x,      观测值分别为:  aa, bb, cc, dd, ee.....  一共100个

我想要的结果是得到输出10句话, 每一句为10个变量的值 中间加上加号 “aa+bb+cc+dd+ee+..... " , 就是第一句1-10。第二句11-20。。。


谢谢了~!

使用道具

地板
grapeade18 发表于 2011-9-15 09:29:28 |只看作者 |坛友微信交流群
yumenderen 发表于 2011-9-15 08:46
想请教一下
我试了下,为什么在你的程序中如果去掉strip函数就不行了呢?不能直接引用文本么?
还有为什 ...
谢谢~!!现在有个小更新 要请教一下

现在有变量x,      观测值分别为:  aa, bb, cc, dd, ee.....  一共100个

我想要的结果是得到输出10句话, 每一句为10个变量的值 中间加上加号 “aa+bb+cc+dd+ee+..... " , 就是第一句1-10。第二句11-20。。。


谢谢了~!

使用道具

7
可~乐 发表于 2011-9-15 10:50:02 |只看作者 |坛友微信交流群
改一下zhangyangsmith 的程序就可以了
DATA tmp;
  INPUT x $;
  CARDS;
aa
bb
cc
dd
ee
ff
gg
hh
ii
jj
kk
aa
bb
cc
dd
ee
ff
gg
hh
ii
jj
kk
;
RUN;

DATA temp;
  SET tmp end=last;
  LENGTH snt $ 200;
  IF mod(_N_,10) eq 1 THEN
    snt=STRIP(x);
  ELSE snt=STRIP(snt)||'+'||STRIP(x);
  RETAIN snt;
  IF mod(_N_,10) eq 0 THEN output;
RUN;

使用道具

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

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

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

GMT+8, 2024-6-5 15:45