そこそこ数のあるファイルを読み込んだりする際に、read.tableするだけでも冗長になる
ES1 <- read.table("./ES1/quant_bias_corrected.sf")
ES2 <- read.table("./ES2/quant_bias_corrected.sf")
ES3 <- read.table("./ES3/quant_bias_corrected.sf")
PE1 <- read.table("./PE1/quant_bias_corrected.sf")
PE2 <- read.table("./PE2/quant_bias_corrected.sf")
PE3 <- read.table("./PE3/quant_bias_corrected.sf")
$とかつけて変数として扱ってfor文でまわせたら楽なのにとかおもって
sample <- c("ES1", "ES2", "ES3", "PE1", "PE2", "PE3")
for (i in sample) {
i <- read.table("./(i)/quant_bias_corrected.sf")
}
とかしても当然ダメですハイ。
それぞれのオブジェクトを別々に作ってもいいけど、どうせその後の処理が一緒ならapply関数使えるようにlistに格納する方が無難。一度pathをリストに格納して読み込んだ表を別のリストに順に格納する。こうすればevalを使わなくてもなんとかなる。
num = 3
filename <- as.list(rep(NA, num))
cell <- as.list(rep(NA, num))
for(i in seq(num)){
filename[[i]] <- paste("./ES", i, "/quant_bias_corrected.sf", sep="")
cell[[i]] <- read.table(filename[[i]], sep="\t")
}
for(i in seq(num)){
filename[[i+num]] <- paste("./PE", i, "/quant_bias_corrected.sf", sep="")
cell[[i+num]] <- read.table(filename[[i+num]], sep="\t")
}
names(cell) <- c("ES1", "ES2", "ES3", "PE1", "PE2", "PE3")
0 件のコメント:
コメントを投稿