楼主: ADFood
5824 3

[问答] 宏里面怎么将变量由字符型变成数值型 [推广有奖]

  • 0关注
  • 0粉丝

高中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
1367 个
通用积分
0.0096
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
147 点
帖子
10
精华
0
在线时间
66 小时
注册时间
2013-7-24
最后登录
2023-9-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

940
941  %macro getdata(sheetname,print);
942  proc import out=&sheetname datafile= Excelin  dbms =xls  replace;
943      sheet="&sheetname";
944      title "&sheetname data ";
945  %if &print=1 %then
946      proc print data=_last_(obs=25);
947      proc contents;
948  %mend getdata;
949  run;

NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.STOCKINFO 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.STOCKINFO 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          1:00.51
      CPU 时间          5.52 秒


950
951  %getdata(sheet1,0);

NOTE: The import data set has 64147 observations and 7 variables.
NOTE: 成功创建“WORK.SHEET1”数据集。
NOTE: “PROCEDURE IMPORT”所用时间(总处理时间):
      实际时间          0.46 秒
      CPU 时间          0.43 秒


952  %getdata(sheet2,0);

NOTE: “PROCEDURE CONTENTS”所用时间(总处理时间):
      实际时间          0.35 秒
      CPU 时间          0.01 秒



NOTE: The import data set has 58047 observations and 4 variables.
NOTE: 成功创建“WORK.SHEET2”数据集。
NOTE: “PROCEDURE IMPORT”所用时间(总处理时间):
      实际时间          0.43 秒
      CPU 时间          0.43 秒


953  %getdata(sheet3,0);

NOTE: “PROCEDURE CONTENTS”所用时间(总处理时间):
      实际时间          0.10 秒
      CPU 时间          0.01 秒



NOTE: The import data set has 60530 observations and 4 variables.
NOTE: 成功创建“WORK.SHEET3”数据集。
NOTE: “PROCEDURE IMPORT”所用时间(总处理时间):
      实际时间          0.42 秒
      CPU 时间          0.42 秒


954  %getdata(sheet4,0);

NOTE: “PROCEDURE CONTENTS”所用时间(总处理时间):
      实际时间          0.07 秒
      CPU 时间          0.01 秒



NOTE: The import data set has 22026 observations and 4 variables.
NOTE: 成功创建“WORK.SHEET4”数据集。
NOTE: “PROCEDURE IMPORT”所用时间(总处理时间):
      实际时间          0.39 秒
      CPU 时间          0.39 秒


955  run;

NOTE: “PROCEDURE CONTENTS”所用时间(总处理时间):
      实际时间          0.27 秒
      CPU 时间          0.00 秒


956
957  data stockinfo;
958      set sheet1 sheet2 sheet3 sheet4;
ERROR: 变量 mcode 已定义为字符型和数值型。



宏里面怎么将变量由字符型变成数值型? 这里是mcode在sheet3里是字符型,在1,2,4里是数值型


二维码

扫码加我 拉你入群

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

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

关键词:数值型 字符型 observations observation Procedure contents replace

沙发
ADFood 发表于 2015-4-26 10:52:44 |只看作者 |坛友微信交流群
data sheet3;
set sheet3;
format mcode1 best 12.;
mcode1=input(mcode,12.);
drop mcode;
rename mcode1=mcode;

自己解决了,加上以上步骤。但不知是否是最有效的办法

使用道具

藤椅
Tigflanker 发表于 2015-4-27 12:55:25 |只看作者 |坛友微信交流群
宏变量解析出来的叫文本,data步内才分为字符型、数字型,例如

%let var = aaa;
%let var1 = 1;

data a;
  x = &var.;     * var被解析为变量名aaa ;
  x = "&var.";     * var被解析为字符值aaa ;
  x = &var1.;     * var1被解析为数值1 ;
run;

使用道具

板凳
ADFood 发表于 2015-4-30 12:24:13 |只看作者 |坛友微信交流群
Tigflanker 发表于 2015-4-27 12:55
宏变量解析出来的叫文本,data步内才分为字符型、数字型,例如

%let var = aaa;
谢谢

使用道具

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

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

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

GMT+8, 2024-4-19 12:35