楼主: cindy七七
7124 10

[问答] 为什么sas里合并两个数据集出现数据丢失? [推广有奖]

  • 1关注
  • 1粉丝

已卖:306份资源

本科生

48%

还不是VIP/贵宾

-

威望
0
论坛币
924 个
通用积分
0.9131
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
2124 点
帖子
60
精华
0
在线时间
96 小时
注册时间
2010-3-4
最后登录
2025-11-24

楼主
cindy七七 发表于 2013-1-10 20:48:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
    合并前排序了,是sas里work文件,两个数据集横向合并,结果非标准的数据集除了合并变量,其他变量值都丢失了,这是为什么?例如:
sample1 :
     code  x y
sampe2:
     code x z
合并成 code x y z(以sample1为标准),但是结果z数据全部丢失。。。
二维码

扫码加我 拉你入群

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

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

关键词:数据集 Sample code AMPL 合并变量 丢失

沙发
tangliang0905 发表于 2013-1-10 22:08:48
data sample1;
input code $ x y;
cards;
1 1 1
1 2 1
2 1 2
2 2 3
;
data sample2;
input code $ x z;
cards;
1 1 5
1 2 6
2 1 0
2 2 9
;
run;

proc sort data=sample1;
by code x;
proc sort data=sample2;
by code x;
run;

data sample3;
merge sample1 (in=a) sample2(in=b);
by code x;
if a and b;
run;
已有 1 人评分经验 收起 理由
eijuhz + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

藤椅
cindy七七 发表于 2013-1-10 22:33:35
tangliang0905 发表于 2013-1-10 22:08
data sample1;
input code $ x y;
cards;
不对呀,按你的方法最后一个数值都没有了,一般不是
data sample3;
merge sample1 (in=a) sample2;
by code x;
if a;
run;
就可以了吗?我这样做结果就是sample2里部分数据(除code x外)皆丢失...

板凳
tangliang0905 发表于 2013-1-10 22:38:58
有data吗?我也有点搞不清楚了,在生成sample3的时候,sample2应该不会变啊

报纸
cindy七七 发表于 2013-1-10 22:44:56
tangliang0905 发表于 2013-1-10 22:38
有data吗?我也有点搞不清楚了,在生成sample3的时候,sample2应该不会变啊
我也觉得好奇怪,其他变量值都变成空白的了...

地板
tangliang0905 发表于 2013-1-10 22:51:48
空白应该是因为该值是字符型的数值吧,所以缺失值是空白。很抱歉不能帮到你太多,对你的问题不是很了解

7
cindy七七 发表于 2013-1-10 23:08:29
tangliang0905 发表于 2013-1-10 22:51
空白应该是因为该值是字符型的数值吧,所以缺失值是空白。很抱歉不能帮到你太多,对你的问题不是很了解
不是空白,是全部变成了一个点,还是很感激你的回复。

8
cindy七七 发表于 2013-1-10 23:09:08
我合并数据第一次遇到这种问题,求大牛呀~~~

9
pobel 在职认证  发表于 2013-1-11 09:22:01
cindy七七 发表于 2013-1-10 23:09
我合并数据第一次遇到这种问题,求大牛呀~~~
有一种可能是在sample2中,与sample1的code,x相对应的记录中z的值都是空的。
楼主可以试一下把“if a;”那一行注释掉看z的值是不是正常。

如果还是有问题的话,楼主最好还是能给出一部分数据和您的代码。
和谐拯救危机

10
cindy七七 发表于 2013-1-11 10:03:25
一番折腾下终于搞定了,是我考虑不周的问题,因为sample1中作为合并标准的code存在重复的值,但是分析需要不能删除重复值,x是个哑变量,因此按照我之前的方法合并数据的话就存在一个code可能对应多个x值,无法赋值所以导致数据丢失。我的解决办法就是先将sample1和sample2按照x分类,我这里x是0-1哑变量就分成两个样本,然后再只按照code合并,两次横向合并后再纵向合并即可得到最终想要的结果了。
纠结好久总算是弄明白了,希望大家引以为鉴不要犯跟我一样的错误,或许也有一步合并就可以解决以上问题的方法,就看哪位大牛能够想出高招了。

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

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