大数据的读取

大数据的读取

因为从Xena上下载的甲基化数据太大,在读取时遇到点麻烦,特定查了下有没有什么方法可以只读取一部分,整理如下

大家有什么好的方法,敬请告知~

  • SCAN

    scan读取.txt文件

    比如读取下面文件的数据,每个数据以空格分隔

    大数据的读取_第1张图片
    image

(1)scan("student.txt", what="c") #以字符串的格式读取数据

(2)scan("student.txt", what="c", nlines=3) #读取3行

(3)scan("student.txt", what="c", skip=1) #忽略第1行

(4)lst <- scan("student.txt", what = list(xh="", xm="", xb="", nl=0), skip=1) #读取数据并保存到变量中

读取结果如下

大数据的读取_第2张图片
image
大数据的读取_第3张图片
image

scan读取.csv文件

.csv的文件默认是逗号分隔,所以在读取时要指定逗号为分隔符。

(1)scan("student.csv") #scan()函数默认以double格式存储数据,而该文件中包含不能转换的数据而报错

(2)scan("student.csv", what="c") #由于未指定分隔符,scan()函数将每一行作为一个数据域

(3)scan("student.csv", what="c", sep=",") #指定逗号作为分隔符后,可以正确读取数据了

(4)scan("student.csv", what="c", sep=",", skip = 1) #忽略第一行的标题行

(5)scan("student.csv", what = list(xh="", xm="", xb="", nl=0), sep=",", skip=1) #以列表的形式读取数据

(6)m <- matrix(scan("student.csv", what="c", sep=",", skip=1), ncol=4, byrow=TRUE) #读取数据并创建矩阵

大数据的读取_第4张图片
image
  • fread

相比dplyr包,data.table包能够更大程度地提高数据的处理速度。data.table,用于快速处理大数据集

fread读取.tsv文件

  1. library(data.table)
  1. fread("example_data.txt",select=c("x1","x2"),data.table=F)
  1. data1<-fread("XXXXs.csv",header = T,stringsAsFactors = F)

readLines()

readLines()统计文件的行数

R语言逐行读取文件:

con <- file(inFile, "r")
lineCnt = 0
while(1){
oneline = readLines(con, n = 1)
if(length(oneline) == 0){
break
}
lineCnt = lineCnt+1 ### 统计的文件行数
}
close(con)

REF:

scan:https://baijiahao.baidu.com/s?id=1609781727359063276

data.table包中的fread:https://www.cnblogs.com/nxld/p/6066797.html

你可能感兴趣的:(大数据的读取)