I have a list called "unique_tissues" of vectors where each vector (element in the list) represents one tissue type and the elements of the vectors are sample names.
$liver
 [1] "liver_10a_P1973_515.tsv" "liver_10b_P1973_519.tsv" "liver_10c_P1973_520.tsv" "liver_9a_P1263_202.tsv"  "liver_9b_P1263_210.tsv"  "liver_9c_P1263_218.tsv" 
 [7] "liver_9d_P1263_226.tsv"  "liver_a_P000_023.tsv"    "liver_c_P000_025.tsv"    "liver_d_P000_026.tsv"   
$lung
[1] "lung_10a_P1973_510.tsv" "lung_11a_P2952_102.tsv" "lung_11c_P2952_104.tsv" "lung_11e_P2952_106.tsv" "lung_3e_P262_148.tsv"   "lung_3f_P262_149.tsv"   "lung_4a_P282_111.tsv"  
[8] "lung_4b_P282_112.tsv"   "lung_4d_P282_114.tsv"  
$prostate
 [1] "prostate_10a_P1973_502.tsv" "prostate_10b_P1973_503.tsv" "prostate_10c_P1973_504.tsv" "prostate_10d_P1973_507.tsv" "prostate_10f_P1973_506.tsv" "prostate_4a_P282_108.tsv"  
 [7] "prostate_4b_P282_109.tsv"   "prostate_4c_P282_110.tsv"   "prostate_9b_P1263_242.tsv"  "prostate_9d_P1263_301.tsv"  "prostate_a_P189_111.tsv"   
The files all look the same and I would like to download all files and merge them into one data frame per tissue type.
all files are present in a folder named "directory_t" and the files all share the same format with the two columns "target_id" and "TPM".
I have tried to use:
 tissue_data <- lapply(unique_tissues, function(x) {
    a <- read.table(paste0(directory_t,"/",x[1]), stringsAsFactors = FALSE,header=T)[,c(1,5)] 
    for(i in 2:length(x)){
      b <- read.table(paste0(directory_t,"/",x[i]), stringsAsFactors = FALSE,header=T)[,c(1,5)]
      a <- merge(a,b,by="target_id")
    }
    return(a)
  })
Is there a way to do this in a better way?
 
    