楼主: xiaosanmao
4148 12

[原创博文] 求助如何合并数据集? [推广有奖]

  • 0关注
  • 0粉丝

博士生

39%

还不是VIP/贵宾

-

威望
0
论坛币
187 个
通用积分
0.0001
学术水平
1 点
热心指数
4 点
信用等级
0 点
经验
4639 点
帖子
247
精华
0
在线时间
279 小时
注册时间
2009-9-3
最后登录
2012-1-19

楼主
xiaosanmao 发表于 2010-5-18 14:29:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比方有一些数据集,格式内容都一样,这个不是重点,需要考虑数据集名字
比方有四个数据集名字叫 xx342,  xx89,hg33,yxx, 怎么把前两个字母相同相同都是xx的数据集合并?因为他们前面两个字母都是xx。
这个名字是通过某些宏运算得来的,具有相同的前缀。谢谢各位大侠了

扩展问题就是:怎么合并某些具有相同特征的数据集,前几个字母啦,后几个字母什么的
二维码

扫码加我 拉你入群

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

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

关键词:合并数据 数据集 各位大侠 如何 字母

回帖推荐

crackman 发表于6楼  查看完整内容

306 data xx112; 307 do i=1 to 10; 308 output; 309 end; 310 run; NOTE: 数据集 WORK.XX112 有 10 个观测和 1 个变量。 NOTE: “DATA 语句”所用时间(总处理时间): 实际时间 0.01 秒 CPU 时间 0.01 秒 311 data xx2; 312 do j=10 to 20; 313 output; 314 end; 315 run; NOTE: 数据集 WORK.XX2 有 11 个观测和 1 个变量。 NOTE: “DATA 语句”所用时间(总处理 ...

crackman 发表于5楼  查看完整内容

data xx112; do i=1 to 10; output; end; run; data xx2; do j=10 to 20; output; end; run; data xx3; do k=20 to 30; output; end; run; data xx4; do n=30 to 40; output; end; run; data crackman; merge xx:; run; SAS9.2可以这样做

醉_清风 发表于4楼  查看完整内容

楼上的 关键是思路 有了思路你还写不出程序? 简单举个例子 合并数据库maps中 数据集名前三位是AFG的数据集 options user=maps; proc contents data=maps._all_ out=work.name noprint nodetails; run; quit; proc sql noprint; select distinct memname into:name separated by " " from work.name where substr(memname,1,3)='AFG'; quit; %put &name; data work.a; set &name; run; ...

本帖被以下文库推荐

沙发
醉_清风 发表于 2010-5-18 14:43:21
把命名有相同特征的数据集名读到宏变量中
之后处理就比较方便了
从来不需要想起 永远也不会忘记

藤椅
xiaosanmao 发表于 2010-5-18 14:56:55
醉_清风 发表于 2010-5-18 14:43
把命名有相同特征的数据集名读到宏变量中
之后处理就比较方便了
我好像也是这个意思吧 我是问具体怎么实现的 而不是应该怎么实现的

板凳
醉_清风 发表于 2010-5-18 15:04:54
楼上的 关键是思路 有了思路你还写不出程序?
简单举个例子 合并数据库maps中 数据集名前三位是AFG的数据集

options user=maps;
proc contents data=maps._all_  out=work.name noprint   nodetails;
run;
quit;

proc sql noprint;
        select distinct memname into:name  separated by " " from work.name where substr(memname,1,3)='AFG';
quit;
%put &name;

data work.a;
        set  &name;
run;

时间仓促 以实现为目的 等待大牛们更好的思路
已有 2 人评分经验 论坛币 热心指数 收起 理由
bakoll + 3 + 3 精彩帖子
crackman + 1

总评分: 经验 + 3  论坛币 + 3  热心指数 + 1   查看全部评分

从来不需要想起 永远也不会忘记

报纸
crackman 发表于 2010-5-18 15:13:39
data xx112;
do i=1 to 10;
output;
end;
run;
data xx2;
do j=10 to 20;
output;
end;
run;
data xx3;
do k=20 to 30;
output;
end;
run;
data xx4;
do n=30 to 40;
output;
end;
run;
data crackman;
merge xx:;
run;

SAS9.2可以这样做
已有 2 人评分经验 论坛币 学术水平 热心指数 收起 理由
bakoll + 3 + 3 精彩帖子
醉_清风 + 1 + 1 学习了

总评分: 经验 + 3  论坛币 + 3  学术水平 + 1  热心指数 + 1   查看全部评分

地板
crackman 发表于 2010-5-18 15:14:08
306  data xx112;
307  do i=1 to 10;
308  output;
309  end;
310  run;

NOTE: 数据集 WORK.XX112 有 10 个观测和 1 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒


311  data xx2;
312  do j=10 to 20;
313  output;
314  end;
315  run;

NOTE: 数据集 WORK.XX2 有 11 个观测和 1 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒


316  data xx3;
317  do k=20 to 30;
318  output;
319  end;
320  run;

NOTE: 数据集 WORK.XX3 有 11 个观测和 1 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒


321  data xx4;
322  do n=30 to 40;
323  output;
324  end;
325  run;

NOTE: 数据集 WORK.XX4 有 11 个观测和 1 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒


326  data crackman;
327  merge xx:;
328  run;

NOTE: 有 10 个从数据集 WORK.XX112 读取的观测。
NOTE: 有 11 个从数据集 WORK.XX2 读取的观测。
NOTE: 有 11 个从数据集 WORK.XX3 读取的观测。
NOTE: 有 11 个从数据集 WORK.XX4 读取的观测。
NOTE: 数据集 WORK.CRACKMAN 有 11 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

7
xiaosanmao 发表于 2010-5-18 15:18:17
醉_清风 发表于 2010-5-18 15:04
楼上的 关键是思路 有了思路你还写不出程序?
简单举个例子 合并数据库maps中 数据集名前三位是AFG的数据集

options user=maps;
proc contents data=maps._all_ noprint  out=work.name nodetails;
run;
quit;

proc sql noprint;
        select distinct memname into:name  separated by " " from work.name where substr(memname,1,3)='AFG';
quit;
%put &name;

data work.a;
        set  &name;
run;

时间仓促 以实现为目的 等待大牛们更好的思路
多谢多谢 够用了 我就是这个意思

8
醉_清风 发表于 2010-5-18 15:19:40
7# xiaosanmao
不客气 一起学习
从来不需要想起 永远也不会忘记

9
yatming 发表于 2010-5-18 16:56:41
6# crackman
crack版,9.2我没用过,所以有个疑问,如果库中正巧有个dataset也就叫xx,那么9.2里merge或者set的时候是怎么玩的。
我看了下help,这样是不是更好,加个冒号;
data result;
    set xx: ;
run;

10
crackman 发表于 2010-5-18 17:00:55
9# yatming
哈哈
就是就是

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

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