楼主: xmubaorui
2267 8

[原创博文] SAS文件夹连续表格导入 [推广有奖]

  • 4关注
  • 1粉丝

大专生

38%

还不是VIP/贵宾

-

威望
0
论坛币
267 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
427 点
帖子
44
精华
0
在线时间
49 小时
注册时间
2011-11-11
最后登录
2013-3-12

楼主
xmubaorui 在职认证  发表于 2012-4-27 15:54:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
某个文件夹里有编号连续的excel表格(现券买卖双边报价1-21),用如下程序导入,结果出现:宏 QUOTE 已被指定了保留名称、将编译哑宏、宏函数名后没有找到期望的左括号三个错误,忘高手指正:
%macro import;
PROC IMPORT OUT= WORK.quote&i
            DATAFILE= "E:\Data\现券买卖双边报价\现券买卖双边报价&i..xls"
            DBMS=EXCEL REPLACE;
     RANGE="CBDDUALBID$";
     GETNAMES=NO;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
  run;
%mend import;
%macro quote;
%do i=1 %to 21;
%import;
%end;
%mend quote;
%quote;
二维码

扫码加我 拉你入群

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

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

关键词:文件夹 replace excel表格 import Excel表 excel表格 import 文件夹 EXCEL 程序

沙发
chendonghui1987 发表于 2012-4-27 16:17:01

%macro a;
%do i=1 %to 21;
        PROC IMPORT OUT= WORK.quote&i
            DATAFILE= "E:\Data\现券买卖双边报价\现券买卖双边报价&i..xls"
            DBMS=EXCEL REPLACE;
     RANGE="CBDDUALBID$";
     GETNAMES=NO;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
  run;
%end;
%mend a;
%a;

藤椅
xmubaorui 在职认证  发表于 2012-4-27 18:50:20
chendonghui1987 发表于 2012-4-27 16:17
%macro a;
%do i=1 %to 21;
        PROC IMPORT OUT= WORK.quote&i
谢谢仁兄,你的代码已经把问题解决啦!我的程序虽然繁琐一点,但是貌似也没有什么问题。。。

板凳
xmubaorui 在职认证  发表于 2012-4-27 19:43:01
chendonghui1987 发表于 2012-4-27 16:17
%macro a;
%do i=1 %to 21;
        PROC IMPORT OUT= WORK.quote&i
再请问一下 怎么合并 quote1-quote21这21个数据集

报纸
chendonghui1987 发表于 2012-4-27 20:01:29
如果数据结构相同,可以用set做:

data work.a;
        input a $ b;
        datalines;
a 1
b 2
;
run;

data work.a1;
        input a $ b;
        datalines;
c 1
d 2
;
run;

data work.c;
        set work.a work.a1;
run;

地板
xmubaorui 在职认证  发表于 2012-4-27 22:07:13
chendonghui1987 发表于 2012-4-27 20:01
如果数据结构相同,可以用set做:

data work.a;
数据结构是一样的,但是那不是要手动输入 quote1 quote2....quote21吗,有没有类似of quote: 之类的方法,之前好像在哪里见过

7
chendonghui1987 发表于 2012-4-28 09:35:13
这种方法好像是data变量才能使用吧,数据集好像不能这样用吧

8
可~乐 发表于 2012-4-30 11:38:36
可以试试这样。。。
  1. %macro data;
  2. data all;
  3. set %do j=1 %to 4; data&j. %end;;/*注意此处有两个分号,而%end前没有分号,set可以换成merge等*/
  4. run;
  5. %mend data;
复制代码

9
xmubaorui 在职认证  发表于 2012-4-30 12:15:58
其实可以直接用set data1-datan

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-12 18:31