作者koai (可笑的自以为...)
看板R_Language
标题Re: [问题] 捞资料
时间Wed Aug 20 17:24:31 2014
不是很确定你的资料型态
帮你写了下面这个程式让你试试看
应该是可以动吧... ^^
A #左边的资料表
B #右边的资料表
A <- data.frame("gene_a"=c("A","B","C"),"Chrom"=c(1,"X",2))
B <- data.frame("Probe_b"=c("a1","a2","a3","a4","a5"),"Chrom2"=c(2,4,1,"X",1))
A
B
C <- list()
for(x in 1:nrow(A)){
C[[as.character(A$gene_a[x])]] <-
as.character(B$Probe_b[
which(is.element(as.character((B$Chrom2)),as.character(A$Chrom[x])))
])
}
※ 引述《yaowei2010 (yaowei)》之铭言:
: [问题类型]:
: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
: [软体熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]
: 资料的配对(如范例)
: [程式范例]:
: 表格如下
: gene_a Chromosome gene_start gene_end Probe_b Chromosome2 Chr_s Chr_e
: A 1 25000 50000 a1 2 175 200
: B X 1000 2000 a2 4 600 625
: C 2 0 800 a3 1 23575 23600
: a4 X 1010 1035
: a5 1 30000 30025
: 最後想变成这样
: gene_a match
: A a3 a5
: B a4
: C a1
: 有试着写过code
: 但gg QAQ
: 想问问强者怎麽写? 或提示
: 程式码可贴於以下网站:
: http://ideone.com/
: http://codepad.org
: http://pastie.org/
: http://nopaste.info/
: http://pastebin.com/
: http://paste.plurk.com
: http://gist.github.com/
: http://nopaste.csie.org/
: ※ 编辑: yaowei2010 (140.112.129.5), 08/20/2014 16:22:15
: → yaowei2010: 两个资料 08/20 16:59
: → yaowei2010: (注 08/20 16:59
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 203.73.70.8
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/R_Language/M.1408526673.A.127.html
1F:推 yaowei2010: 假设我在附加一个条件是probe在chromosme2的位置要落 08/20 17:35
2F:→ yaowei2010: gene的位子中,虽然分类结果如例子一样,感觉一个for 08/20 17:36
3F:→ yaowei2010: 回圈好像不行 08/20 17:36
4F:→ yaowei2010: 请问大大加上这个条件该如何是好>< 08/20 17:36
5F:→ koai: 你是指probe的chrom2要等於gene的chrom?? 现在已经是这样做 08/20 17:45
6F:→ koai: 其实没有看懂你的问题耶... @@" 08/20 17:45
7F:推 yaowei2010: 不见得等於 就落入范围中>< 08/20 17:46
8F:→ yaowei2010: 其实我想match同个chromosome上gene之间的位子所包含 08/20 17:47
9F:→ yaowei2010: 的probe 08/20 17:47
10F:→ yaowei2010: 不过我是先决定Chromosome再决定位子 刚刚才看到问题 08/20 17:48
11F:→ yaowei2010: 没完全打出来 报歉>< 08/20 17:49
12F:→ yaowei2010: 先前是for回圈 去找该位子相等 然後&去做 同时要位子 08/20 17:50
13F:→ yaowei2010: 在gene的范围之内 但是因为两笔资料数目不同 08/20 17:51
14F:→ yaowei2010: 害我不知道该怎写for loop 08/20 17:51
15F:→ koai: 请你把问题描述清楚一点(用栏位名称) 你自己很清楚问题为何 08/20 18:12
16F:→ koai: 但是别人不知道细节... 08/20 18:12