楼主: xingkong626
2403 6

[有偿编程] 两列多对多数据拆分成1对1数据。 [推广有奖]

  • 2关注
  • 0粉丝

高中生

20%

还不是VIP/贵宾

-

威望
0
论坛币
69 个
通用积分
0.1200
学术水平
3 点
热心指数
3 点
信用等级
3 点
经验
244 点
帖子
22
精华
0
在线时间
19 小时
注册时间
2010-5-29
最后登录
2020-9-16

50论坛币
一组数据,B,C两列是对应的,比如下图,B2有两个基因,那么C2就有两个group按顺序对应,
                                                                   B3有6个基因,那么C3就有6个group按顺序对应。

能否拆分成1对1的,详见result:

恰美截图助手未命名.jpg
need help.rar (12.28 KB) 本附件包括:
  • need help.xls


非常感谢ziyenano的热心帮忙!
祝好!

最佳答案

ziyenano 查看完整内容

proc import out=ex datafile="E:\need help.xls" replace; sheet="raw_data"; run; data ex1; set ex; i=1; do while(1=1); gene1=scan(gene,i,';'); group1=scan(mini_group,i,';'); i+1; if gene1="" then leave; output; end; keep id gene1 group1; run; proc sort data=ex1 noduplicate; by id gene1 group1; run;
关键词:Result Group RESUL Nano 非常感谢 result

回帖推荐

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

补上空行: data ex1; set ex; i=1; do while(1=1); gene1=scan(gene,i,';'); group1=scan(mini_group,i,';'); if i^=1 and gene1="" then leave; ##这里修改一下 i+1; output; end; keep id gene1 group1; run;
沙发
ziyenano 发表于 2014-8-4 14:07:23 |只看作者 |坛友微信交流群
proc import out=ex
datafile="E:\need help.xls"
replace;
sheet="raw_data";
run;

data ex1;
set ex;
i=1;
do while(1=1);
gene1=scan(gene,i,';');
group1=scan(mini_group,i,';');
i+1;
if gene1="" then leave;
output;
end;
keep id gene1 group1;
run;

proc sort data=ex1 noduplicate;
by id gene1 group1;
run;

使用道具

藤椅
learsaas 发表于 2014-8-4 16:09:10 |只看作者 |坛友微信交流群
楼上把空行漏了

使用道具

板凳
xingkong626 发表于 2014-8-4 17:10:12 |只看作者 |坛友微信交流群
ziyenano 发表于 2014-8-4 15:36
proc import out=ex
datafile="E:\need help.xls"
replace;
再加上我网上搜索到的保存sas到excel的代码。
libname  myxls  EXCEL 'E:\输出到XLS文件.xls';
data myxls."我的第一张表"n(dblabel=YES);
set ex1;
run;
libname myxls clear;

非常感谢ziyenano的热心帮忙!
祝好!

使用道具

报纸
xingkong626 发表于 2014-8-4 17:10:55 |只看作者 |坛友微信交流群
learsaas 发表于 2014-8-4 16:09
楼上把空行漏了
楼上把空行漏了,什么意思?


我看到你这句话,就先excel里面排序,去掉空行了。

谢谢。

使用道具

地板
ziyenano 发表于 2014-8-4 17:48:12 |只看作者 |坛友微信交流群
补上空行:
data ex1;
set ex;
i=1;
do while(1=1);
gene1=scan(gene,i,';');
group1=scan(mini_group,i,';');
if i^=1 and  gene1="" then leave; ##这里修改一下
i+1;
output;
end;
keep id gene1 group1;
run;

使用道具

7
xingkong626 发表于 2014-8-4 18:17:13 |只看作者 |坛友微信交流群
ziyenano 发表于 2014-8-4 17:48
补上空行:
data ex1;
set ex;
谢谢你的关于补充空行的补充帖子。

使用道具

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

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

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

GMT+8, 2024-4-27 07:30