1

私はデータと呼ばれる次のdfを持っています:

  ProbeID    SampleID ExperimID    Value    
1 2747406        1         2       6.44 
1 2747406        4         2       5.90

etc....

SampleID = 1(data [、2] = 1)およびSampleID = 4(data [、2] = 4)に一致する列4(data [、4])の値を抽出しようとしています。

値がSampleIDと一致し、一緒に抽出されることが重要です(つまり、SampleID 1の場合、値= 6.44、SampleID 4の場合、値= 5.90)。それらは新しいdf(xとy)に分離でき、理想的にはすべてのSampleID 1値でxを、すべてのSampleID4値でyを取得します。私はこれに完全に固執しています、どんな助けでも大歓迎です。

目標は、xとyという2つの新しいデータフレームを次のように表示することです。

xは次のとおりです。

     SampleID    Value    
1       1        6.44 
etc..

そしてyは:

    SampleID     Value    
1       4        5.90
etc...
4

2 に答える 2

2

これは簡単な飼料ですsplit

dataBySample <- split(data, data$SampleID)

必要な出力に対応するdataBySample要素を含むリストも同様です。data.frames


本当にこれらのdata.framesをグローバル環境に移入したい場合は、次のようにすることができます

newnames <- paste0('sample', names(dataBySample))

for(i in seq_along(dataBySample)){
  assign(newnames[i], dataBySample[[i]])
}
# so now there are dataframes called sample1 and sample4
sample1
ProbeID SampleID ExperimID Value
1 2747406        1         2  6.44

sample4
ProbeID SampleID ExperimID Value
2 2747406        4         2   5.9

これらのdata.frameに対して行っているほとんどすべてのことは、それらをリストに保持し、それらで地球環境を汚染しない場合、制御が容易になります。特に、あなたのコメントのように、2405670のサンプルがあることに注意してください。本当にそんなに多くのdata.framesを作成したいですか?


于 2012-12-04T01:42:18.173 に答える
1

mnelを聞く必要があると思いますが、ワークスペースをばらばらのデータで乱雑にしたい場合は、次のようにします。

 res1 <- dfrm[ dfrm$sampleID == 1 , c("SampleID",    "Value") ]
 res4 <- dfrm[ dfrm$sampleID == 4 , c("SampleID",    "Value") ] 
于 2012-12-04T01:54:39.663 に答える