SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: shiyiming
打印 上一主题 下一主题

一个将首字母变大写的sas macro

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
11#
 楼主| 发表于 2008-1-16 15:44:15 | 只看该作者

Re: 一个将首字母变大写的sas macro

版主真是很牛
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
12#
 楼主| 发表于 2008-1-28 15:16:37 | 只看该作者

Re: 一个将首字母变大写的sas macro

楼主的程序好多多余的地方哦
%macro firstup(data, var);
data temp;
set &data;
&var = ' ' || trim(lowcase(&var));                  left可以不要                 
run;

data firstup;
set temp;                                                    i=0可以省略
do until(i = 0);
i = anyspace(&var, i + 1);
substr(&var, i + 1, 1) = upcase(substr(&var, i + 1, 1));        干吗非要引入c呢? 岂非浪费资源
end;
&var = trim(&var);
drop i;                                                        这下可以少drop一个column了哦
run;
%mend firstup;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
13#
 楼主| 发表于 2008-1-28 16:06:11 | 只看该作者

Re: 一个将首字母变大写的sas macro

来个不要||的,不过怎么都没有propcase好了 <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? -->
%macro firstup(data, var);
data temp;
set &amp;data;
&amp;var=trim(lowcase(&amp;var));
substr(&amp;var,1,1)=upcase(substr(&amp;var,1,1));
do until(i=0);
i=anyspace(&amp;var,i+1);
substr(&amp;var, i + 1, 1) = upcase(substr(&amp;var, i + 1, 1));
end;
drop i;
run;
%mend firstup;
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 14:08 , Processed in 0.071199 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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