0

開くデータフレームがたくさんあり、「CNV」という名前のフォルダーにあると想定します

Ss 私はこのリンクを読みました [1]:フォルダー内のすべてのファイルを開き、関数を適用します が、まだ混乱しています。

デスクトップのフォルダーCNVにファイル名a、b、c、d、e .... zがあるとします

これらのファイルには同じ列があります

Sample, start, stop, event, probe, length
qd1234,  2666,  2888,  CN gain,  23,  235    
cc234,   1000,   1500,  CN loss,  5,  500

私の質問は、すべてのファイルを一度に開き、これらのファイルをすべて開いた後に開く方法です

プローブ数が5以上、CNロスプローブ数が3以上、プローブ/長が30以下のCNゲインを選択したい

期待される結果:

a
Sample, start, stop, event, probe, length, length/probe
qd1234,  2666,  2888,  CN gain,  23,  235, 9 
qd1534,  1200,  1800,  CN loss,  60,  600  10
b
Sample, start, stop, event, probe, length, length/probe
qd234,  2666,  2888,  CN gain,  23,  235, 9 
qd534,  1200,  1800,  CN loss,  60,  600  10
4

1 に答える 1

1

このようなものを探しているのではないかと思います。作成するときにcrit、インポートしたばかりの列を見てdata.frame、指定された基準を満たす行を確認します。それに基づいて、全体をサブセット化し、サブセットをdata.frame返します (関数は最後の行を返します)。

my.files <- list.files()

my.df <- sapply(my.files, function(x) {
  read.in <- read.table(x, header = TRUE, sep = ",")
  crit <- with(read.in, which(probe > 5 & probe > 3 & (probe/length) < 30))
  read.in[crit, ]
}, simplify = FALSE)

再現可能な例がないため、このサブセット化が実際にどのように機能するかを以下に示します。

set.seed(357)
xy <- data.frame(x = 1:10, y = runif(10), z = rnorm(10))
xy # we expect row 6 to satisfy all the conditions
xy[with(xy, which(x > 5 & y < 0.5 & z < 0)), ]
于 2013-08-09T10:07:46.197 に答える