Re: [問題] 撈資料

作者: koai (可笑的自以為...)   2014-08-20 17:24:31
不是很確定你的資料型態
幫你寫了下面這個程式讓你試試看
應該是可以動吧... ^^
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
作者: yaowei2010 (yaowei)   2014-08-20 17:35:00
假設我在附加一個條件是probe在chromosme2的位置要落gene的位子中,雖然分類結果如例子一樣,感覺一個for迴圈好像不行請問大大加上這個條件該如何是好><
作者: koai (可笑的自以為...)   2014-08-20 17:45:00
你是指probe的chrom2要等於gene的chrom?? 現在已經是這樣做其實沒有看懂你的問題耶... @@"
作者: yaowei2010 (yaowei)   2014-08-20 17:46:00
不見得等於 就落入範圍中><其實我想match同個chromosome上gene之間的位子所包含的probe不過我是先決定Chromosome再決定位子 剛剛才看到問題沒完全打出來 報歉><先前是for迴圈 去找該位子相等 然後&去做 同時要位子在gene的範圍之內 但是因為兩筆資料數目不同害我不知道該怎寫for loop
作者: koai (可笑的自以為...)   2014-08-20 18:12:00
請你把問題描述清楚一點(用欄位名稱) 你自己很清楚問題為何但是別人不知道細節...

Links booklink

Contact Us: admin [ a t ] ucptt.com