[問題] 多欄資料迴圈處理

看板R_Language作者 (Jun)時間9年前 (2015/05/03 20:02), 9年前編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/2 (看更多)
各位先進 又來請教問題了 謝謝大家指導 先上資料檔 https://www.dropbox.com/s/s0rmp73n08qbyfl/test0430.csv?dl=0 第一部分 #註:資料檔中的NA值可先忽略 #以下語法皆只能處理單欄資料 ###讀檔並轉成類別型資料### temp=read.csv("C:\\Users\\Win\\Desktop\\test0430.csv",header=T) for(i in 1:ncol(temp)) temp[,i]=as.character(temp[,i]) ###MAF計算### table.rs1=table(temp[,1]) #可知rs1的 0有116個,1有31個,2有2個 #計算n n0=116;n1=31;n2=2; n=n0+n1+n2 #計算minor allele frequencies(MAF) p=((2*n0)+n1)/(2*n);q=1-p maf=pmin(p,q) 問題1:我該如何把每欄的rs用迴圈的方式計算完 問題2:全部rs計算完畢後,若該rs計算出來的maf<0.05,就存到另一個csv檔, 其rs下的資料也要保留,因為要繼續做後續的分析,所以新的csv檔維度為149*欄數 第二部分 #註:資料檔中的NA值可先忽略 #以下語法皆只能處理單欄資料 ###讀檔並轉成類別型資料### temp=read.csv("C:\\Users\\Win\\Desktop\\test0430.csv",header=T) for(i in 1:ncol(temp)) temp[,i]=as.character(temp[,i]) ###Likelihood ratio test for Hardy Weinberg equilibrium### #以rs1為例 obs=cbind(n0=n0,n1=n1,n2=n2) exp=(cbind(p*p,2*p*q,q*q))*n chisq=(obs-exp) chisq.ratio=(chisq*chisq)/exp hwe.chisq=apply(chisq.ratio,1,sum) hwe.chisq.p=1-pchisq(hwe.chisq,df=1) 問題3:我該如何把每欄的rs用迴圈的方式計算完 問題4:全部rs計算完畢後,若該rs計算出來的hwe.chisq.p<0.05,就存到另一個csv檔, 其rs下的資料也要保留,因為要繼續做後續的分析,所以新的csv檔維度為149*欄數 以上是我的問題,有勞各位先進前輩指導,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.184.161.128 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1430654523.A.539.html ※ 編輯: sinclairJ (111.184.161.128), 05/03/2015 20:03:54

05/03 20:57, , 1F
我認為table這問題 我上次的code可以解決
05/03 20:57, 1F

05/03 20:57, , 2F
看起來你並沒有把他學起來
05/03 20:57, 2F

05/03 20:58, , 3F
我的問題,不該用太難的方式去解決問題。
05/03 20:58, 3F

05/04 06:27, , 4F
對不起cel大 其實我是看不太懂你的code...
05/04 06:27, 4F

05/04 06:28, , 5F
我只會用套件,但對於資料預處理或流程控制尚還在學習..
05/04 06:28, 5F

05/04 12:18, , 6F
推薦你用plyr的colwise處理data.frame的逐行作業
05/04 12:18, 6F

05/04 12:19, , 7F
colwise(function(x){tmp = table(x);n0 = tmp["0"]
05/04 12:19, 7F

05/04 12:19, , 8F
n1 = tmp["1"];n2 = tmp["2"];n = n0 + n1 + n2
05/04 12:19, 8F

05/04 12:19, , 9F
p=((2*n0)+n1)/(2*n);maf=pmin(p,1-p)})(temp)
05/04 12:19, 9F

05/04 14:43, , 10F
晚點試試看 cel大謝謝你
05/04 14:43, 10F
文章代碼(AID): #1LHWuxKv (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1LHWuxKv (R_Language)