生物信息学分析

R 逐行读取文件内容

2019-04-30  本文已影响11人  JeremyL
R

R 处理文件时,一般情况都是直接读取整个文件生成一个数据框保留数据信息。当文件过大或者不需要导入整个文件时,可以一行一行的读入数据及处理。

readLines()函数

从连接中读取部分或全部文本行

readLines(con = stdin(), n = -1L, ok = TRUE, warn = TRUE,
          encoding = "unknown", skipNul = FALSE)
#con: 连接对象或字符串
#n: 整数,一次读取的行数;设为复数表示读取整个数据;不设置时,默认读取整个文件
#ok: 逻辑值;设置ok=F, 读到连接对象最后返回error

创建数据

> test<-matrix(sample(1:200,50),nrow=10)
> test
      [,1] [,2] [,3] [,4] [,5]
 [1,]  146  166  148  139   60
 [2,]  192  177  180  121   31
 [3,]   56   93  188  186    3
 [4,]   78   42  163   37   54
 [5,]  123   44    1   16  130
 [6,]    4   58  138   45   39
 [7,]   30  197   77   32   57
 [8,]  185    9   65   59  140
 [9,]   79  155  110   95  108
[10,]   14   99   47   64   17
> write.table(test, file = "test.txt",col.names = F,row.names = F,quote = F)

逐行读入数据处理

> demo=file("test.txt",open="r")
> n=1
> while ( TRUE ) {
  line = readLines(demo, n = 1)
  if ( length(line) == 0 ) {
    break
  }
  cat(n,line,"\n")
  n=n+1
}

1 170 179 144 110 43 
2 35 54 148 77 76 
3 116 165 89 36 186 
4 70 152 122 62 7 
5 96 34 145 142 198 
6 108 124 200 97 42 
7 82 171 15 106 130 
8 55 20 48 52 16 
9 169 107 195 129 190 
10 71 25 173 112 13 

> close(demo)
上一篇下一篇

猜你喜欢

热点阅读