楼主: air320322
1880 10

数据的合并 [推广有奖]

  • 4关注
  • 0粉丝

讲师

81%

还不是VIP/贵宾

-

威望
0
论坛币
11520 个
通用积分
9.5113
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3826 点
帖子
241
精华
0
在线时间
989 小时
注册时间
2005-5-28
最后登录
2025-10-12

楼主
air320322 发表于 2012-2-8 17:04:58 |AI写论文
10论坛币

表1 A

varietyid

SJWEIGHT

S10468

0.106075

S10469

0.011771

表B

varietyid

WEIGHT

S10467

0.013815

S10468

0.158393

S10469

0.069556

想合并表A和B成下面的效果

varietyid

WEIGHT

   
SJWEIGHT         

S10467

0.013815

S10468

0.158393

0.106075

S10469

0.069556

0.011771

最佳答案

zhangzachary 查看完整内容

可以对生成的表格再做一次运算:
关键词:variety weights Weight Eight weigh

回帖推荐

不明真相的群众

沙发
zhangzachary 发表于 2012-2-8 17:04:59
air320322 发表于 2012-2-8 17:36
合并之后的SJWEIGHT值如果为缺失值,则赋值为0该怎么做呢?
可以对生成的表格再做一次运算:
  1. data want;
  2. set want;
  3. if missing(SJWEIGHT) then SJWEIGHT=0;
  4. if missing(WEIGHT) then WEIGHT=0;
  5. run;
复制代码
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

藤椅
zhangzachary 发表于 2012-2-8 17:09:19
  1. proc sort data=a; by varietyid; run;
  2. proc sort data=b; by varietyid; run;

  3. data want;
  4. merge b a;
  5. by varietyid;
  6. run;
复制代码
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

板凳
air320322 发表于 2012-2-8 17:24:53
zhangzachary
你好,谢谢,我该怎么把金币给你呢
不明真相的群众

报纸
air320322 发表于 2012-2-8 17:36:22
合并之后的SJWEIGHT值如果为缺失值,则赋值为0该怎么做呢?
不明真相的群众

地板
blueseali 发表于 2012-2-8 17:38:41
可用excellookup中的函数解决.公式为LOOKUP(A9,A$3:A$5,B$3:B$5)

7
blueseali 发表于 2012-2-8 17:44:44
为方便操作,提供一个excel.

Book1.xls
下载链接: https://bbs.pinggu.org/a-1039906.html

13.5 KB

excel

8
air320322 发表于 2012-2-8 17:46:42
blueseali
谢谢你的回答
我这里需要用SAS解决
不明真相的群众

9
zhangzachary 发表于 2012-2-8 17:55:03
air320322 发表于 2012-2-8 17:24
zhangzachary
你好,谢谢,我该怎么把金币给你呢
这个我倒是不知道……发消息问问版主吧……
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

10
shenliang_111 发表于 2012-2-8 18:01:57
air320322 发表于 2012-2-8 17:46
blueseali
谢谢你的回答
我这里需要用SAS解决
  1. data a;
  2. input varietid $ sjweight;
  3. cards;
  4. S10468   0.106075
  5. S10469   0.011771
  6. ;
  7. data b;
  8. input  varietid $ weight;
  9. cards;
  10. S10467   0.013815
  11. S10468    0.158393
  12. S10469     0.069556
  13. ;
  14. /*method one*/
  15. proc sql noprint;
  16.   create table result1 as  
  17.     select b.*,case when(missing(a.sjweight)) then 0 else a.sjweight end as sjweight from
  18.       b left join a
  19.        on b.varietid=a.varietid;
  20.   quit;
  21. /*method two */;
  22. proc sort data=a;by varietid;run;
  23. proc sort data=b;by varietid;run;
  24. data result2;
  25. merge a(in=ina)
  26.       b(in=inb)
  27.           ;
  28. by varietid;
  29. if inb;
  30. if missing(sjweight) then sjweight=0;
  31. run;

复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
air320322 + 1 + 1 + 1 谢谢,你的答案很不错,只是zhangzachary最.

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 02:06