大数据的读取
因为从Xena上下载的甲基化数据太大,在读取时遇到点麻烦,特定查了下有没有什么方法可以只读取一部分,整理如下
大家有什么好的方法,敬请告知~
-
SCAN
scan读取.txt文件
比如读取下面文件的数据,每个数据以空格分隔
(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) #读取数据并保存到变量中
读取结果如下:
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) #读取数据并创建矩阵
-
fread
相比dplyr包,data.table包能够更大程度地提高数据的处理速度。data.table,用于快速处理大数据集
fread读取.tsv文件
- library(data.table)
- fread("example_data.txt",select=c("x1","x2"),data.table=F)
- 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