0

私は非常に難しい問題を抱えています。次のような 2 つの data.frames があります。

data.frame_1 (600 列と 100 行):

 COL1   COL2   COL3  ...
  ab     e     jh    ...   
  gb     if    ki    ...    
  uc     kg    al    ...    
  id     mn    ef1   ...    

および data.frame2 (900 列と 1000 行)

 Gene  Samp1   Samp2  Samp3
  ab     1      0      0
  gb     1      1      1
  uc     0     -1      1
  id    -1     -1      1
  e      1      0     -1
  f     -1      1     -1
  if     1      1      0
  kg     0      1     -1
  mn    -1      0      1
  jh    -1     -1     -1
  ki     0     -1      0
  al     0      1     -1

次の出力が必要です。

 COL1    Samp1   Samp2   Samp3
  ab      1        0      0
  gb      1        1      1
  uc      0       -1      1
  id     -1       -1      1




 COL2    Samp1   Samp2   Samp3
  e        1       0      -1
  f       -1       1      -1
  if       1       1       0
  kg       0       1      -1

したがって、data.frame_1 の各列には、data.frame_2 の最初の列との一致とサブセットが必要であり、各一致は別の個別のファイルに保存されます。

誰でも私を助けてもらえますか?

よろしくお願いします!

4

1 に答える 1

3

これは実際には非常に簡単です。

dat1 <- read.table(text = "COL1   COL2   COL3 
   ab     e     jh       
   gb     if    ki        
   uc     kg    al        
   id     mn    ef1   ",header = TRUE,sep = "")
dat2 <- read.table(text=  "Gene  Samp1   Samp2  Samp3
   ab     1      0      0
   gb     1      1      1
   uc     0     -1      1
   id    -1     -1      1
   e      1      0     -1
   f     -1      1     -1
   if     1      1      0
   kg     0      1     -1
   mn    -1      0      1
   jh    -1     -1     -1
   ki     0     -1      0
   al     0      1     -1",header = TRUE,sep = "")

lapply(dat1,function(x) dat2[dat2$Gene %in% x,])

そして、結果を含むデータ フレームのリストが表示されます。それぞれlapplyを個別のファイルに保存するために、その上に置いてください(ディスク上のファイルにそれぞれが本当に必要であると仮定します)。

于 2013-06-10T15:59:53.393 に答える