LoginSignup
10
7

More than 3 years have passed since last update.

行数、列数が不均一なデータをRで読み込む

Last updated at Posted at 2015-05-19

Rはテーブルなどの行列になっている情報を読み込むことに長けたソフトウェアでread.table, read.delimを用いてテキストデータを読み込むことが常ですが、異なる行数、列数を持つデータを扱うときはreadLinesが使えます。こちらの記事を参考にしました。読み込んだ後のデータはリスト化しています。

testデータは、GSEAからgene setのsymbolリストを取得しています。


rl <- readLines(con="./c3.all.v5.0.symbols.gmt.txt") #readlineによる行データの読み込み
gs_list <- list()  #list準備 

for(i in 1:length(rl)){
    dl <- unlist(strsplit(rl[i], "\t")) #strsplitでdelimitorとして\tで分割
    gs_list[[dl[1]]] <- dl[3:length(rl)] #dl[1]とdl[2]には、motif名、urlなどの情報があるので除いておく
}

#1番のリストから遺伝子名を取り出す。
na.omit(unlist(gs_list[[1]]))

リストの出力結果  

==========================出力=======================================
  [1] "MEF2C"     "ATP1B1"    "RORA"      "CITED2"    "APP"       "MAP3K4"   
  [7] "ATP2B4"    "GRIN2B"    "PHTF1"     "TLK1"      "PHOX2B"    "MYH2"     
 [13] "SKP2"      "ZHX3"      "TGIF1"     "LUC7L3"    "PPARGC1A"  "TSC22D4"  
 [19] "SPAG9"     "MAPK3"     "PDGFRB"    "EFNA5"     "RAB10"     "NEK6"     
 [25] "LOC148872" "EPHB2"     "TBC1D8B"   "DMD"       "EGFLAM"    "DYNC1I2"  
 [31] "MAML3"     "TRAM1"     "CDC42EP3"  "OLFM1"     "CDC42EP5"  "KLF12"    
 [37] "RSPO2"     "KLF14"     "NTRK3"     "EPHA7"     "SEMA6C"    "SFRP2"    
==========================出力=======================================

readLines、知らずに適宜shellでパースしてましたが、簡単にできますね。

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7