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