楼主: 小鳄鱼a
3837 18

请高手修正一个程序 [推广有奖]

  • 6关注
  • 10粉丝

已卖:280份资源

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

楼主
小鳄鱼a 发表于 2015-12-27 09:34:19 |AI写论文
500论坛币
源程序
https://bbs.pinggu.org/thread-2921875-1-1.html

我用的是9.4 版本的  , 希望调试好后给个具体的程序 , 如果论坛code容易出问题,可以放在一个txt中上传 。谢谢

我的数据集

data test;
input name $;
cards;
张三
李四
王五
;
run;



结果是这样子




NOTE: 字符值已转换为数值,位置:(行:列)。
      5:175
NOTE: 变量 RHTPFTPinyin 未初始化。
NOTE: 变量 RHTPFT_Pinyin 未初始化。
ERROR: “key”变量 RHTPFT_Hanzi 类型不匹配,位置: 行 5 列 37。
ERROR: Hash 数据集加载失败,位置: 行 5 列 37。
ERROR: DATA STEP 组件对象失败。在“EXECUTION”阶段中止。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.FUNDCODELIST1 可能不完整。该步停止时,共有 0 个观测和 3 个变量。
WARNING: 数据集 WORK.FUNDCODELIST1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒




请问如何修改程序

最佳答案

孤单的我们 查看完整内容

首字母大写函数propcase,小写转大写upcase,大写转小写lowcase 根据需要统一格式 多个空格的话,可以设置个最大循环数,if 2空格 then 把2个空格替换成1个
关键词:EXECUTION Data step warning pinggu thread 程序

沙发
孤单的我们 发表于 2015-12-27 09:34:20
小鳄鱼a 发表于 2015-12-28 16:37
谢谢    我看运行出来的结果是  小写   。
我的格式包括 小写  开头大写   姓大写   全拼大写  Zhang sa ...
首字母大写函数propcase,小写转大写upcase,大写转小写lowcase
根据需要统一格式
多个空格的话,可以设置个最大循环数,if 2空格 then 把2个空格替换成1个

藤椅
lalala223344 发表于 2015-12-27 12:16:00
我运行了,输出结果正常

板凳
lalala223344 发表于 2015-12-27 12:16:59
data test;
input name $;
cards;
张三
李四
王五
;
run;
proc print;
run;

报纸
小鳄鱼a 发表于 2015-12-27 13:47:43
lalala223344 发表于 2015-12-27 12:16
data test;
input name $;
cards;
啊      是不是这样


%macro Demo();
%let SourceTable=test;
%let TargetTable=FundCodeList1;
%let InputVar=name;
%let OutputVar=Fund_Name_Pinyin;
%let Delimiter=' ';
%TransHanziToPinyinForTable(&SourceTable,&TargetTable,&InputVar,&OutputVar,&Delimiter);
%mend;

%Demo;

地板
小鳄鱼a 发表于 2015-12-27 13:49:08
lalala223344 发表于 2015-12-27 12:16
data test;
input name $;
cards;
%macro Demo();
%let SourceTable=test;
%let TargetTable=testresult;
%let InputVar=name;
%let OutputVar=namepinyin;
%let Delimiter=' ';
%TransHanziToPinyinForTable(&SourceTable,&TargetTable,&InputVar,&OutputVar,&Delimiter);
%mend;

7
lalala223344 发表于 2015-12-27 14:49:23
是你软件的问题,缺少什么模块吧,正常这么简单的程序是没错误的

8
小鳄鱼a 发表于 2015-12-27 22:56:40
lalala223344 发表于 2015-12-27 14:49
是你软件的问题,缺少什么模块吧,正常这么简单的程序是没错误的
应该不至于   我用的  9.4   感觉所有模块都装了

9
Tigflanker 发表于 2015-12-28 08:40:43
length RHTPFT_Hanzi 2RHTPFTPinyin6;

显然是你把上面这句直接copy过去了,咱们论坛的code编辑器有问题,两个$出现就会当作某种功能实现。

hash之前,字段未定义,hash函数预读的时候就会不认识。

10
Tigflanker 发表于 2015-12-28 08:43:56
你试试:length RHTPFT_Hanzi $2 RHTPFTPinyin $6;

不对的话,你去查一下上面那个data步这两个字段的长度。

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

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