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")