SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1241|回复: 1
打印 上一主题 下一主题

字符串处理

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2003-10-30 09:44:09 | 只看该作者

字符串处理

PROC TABULATE DATA=数据集1;
OUT=数据集2;
MISSING
;
VAR ACTUAL PREDICT;
CLASS REGION DIVISION PRODUCT COUNTRY;
TABLE /* Row Dimension */
  REGION,
  /* Column Dimension */
  COUNTRY*
    ACTUAL*(
      Sum
      RowPctSum)
  DIVISION*
    ACTUAL*(
      Sum
      RowPctSum);
RUN;
  写 一个宏,传入字符串str='REGION,COUNTRY*ACTUAL*(Sum RowPctSum) DIVISION*ACTUAL*(Sum RowPctSum)';
生成如下新的字符串 'REGION COUNTRY ACTUAL_Sum','REGION COUNTRY ACTUAL_RowPctSum_100'
'REGION DIVISION ACTUAL_Sum','REGION DIVISION ACTUAL_Sum',希望用到循环;
     ACTUAL_Sum,  ACTUAL_RowPctSum_100是数据集合2在数据集1的str串基础上生成的变量;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2003-11-3 10:34:17 | 只看该作者

Re: 字符串处理

[quote="sasprog":f72e5]..  写 一个宏,传入字符串str='REGION,COUNTRY*ACTUAL*(Sum RowPctSum) DIVISION*ACTUAL*(Sum RowPctSum)';
生成如下新的字符串 'REGION COUNTRY ACTUAL_Sum','REGION COUNTRY ACTUAL_RowPctSum_100'
'REGION DIVISION ACTUAL_Sum','REGION DIVISION ACTUAL_Sum',希望用到循环;
     ACTUAL_Sum,  ACTUAL_RowPctSum_100是数据集合2在数据集1的str串基础上生成的变量;[/quote:f72e5]

能否将您的用意写清楚?为什么要传入table语句后的内容,而获得四种组合字符串?

*********************************************************;
如果单从字面意思理解,可以将:
ods output position =_pos;
proc contents data=数据集合2( drop= _TYPE_    _PAGE_    _TABLE_) position;
run;
ods output close;

proc transpose data = _pos out=数据集合2;
        var variable;
run;

数据集_pos:
                        Obs     _NAME_      COL1       COL2       COL3         COL4             COL5
                         1     Variable    REGION    DIVISION    COUNTRY    ACTUAL_Sum    ACTUAL_PctSum_100

在按你的要求组合一下。但显然这很难符合你的要求,因为我不太清楚你的目的!
*********************************************************;


写得越清楚,大家越能给个较快的回复!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-5-18 12:56 , Processed in 0.132467 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表