使用R下载和提取.gz数据文件
我已经试着通过适应这个来解决我的问题。 但是,对于我要使用的URL或文件,我得到了以下错误使用R下载和提取.gz数据文件,r,download,compression,gzip,R,Download,Compression,Gzip,我已经试着通过适应这个来解决我的问题。 但是,对于我要使用的URL或文件,我得到了以下错误 trying URL 'http://cbio.mskcc.org/microrna_data/human_predictions_S_C_aug2010.txt.gz' Content type 'application/x-gzip' length 65933953 bytes (62.9 Mb) opened URL downloaded 62.9 Mb Show Traceback Rer
trying URL 'http://cbio.mskcc.org/microrna_data/human_predictions_S_C_aug2010.txt.gz'
Content type 'application/x-gzip' length 65933953 bytes (62.9 Mb)
opened URL
downloaded 62.9 Mb
Show Traceback
Rerun with Debug
Error in open.connection(file, "rt") : cannot open the connection In addition: Warning message:
In open.connection(file, "rt") :
cannot open zip file 'D:....'
以下是我尝试过的:
url_S_C <- "http://cbio.mskcc.org/microrna_data/human_predictions_S_C_aug2010.txt.gz"
tmpFile <- tempfile()
fileName <- gsub(".gz","",basename(url_S_C))
download.file(url_S_C, tmpFile)
data <- read.table(unz(tmpFile, fileName))
unlink(tmpFile)
url\u S\u C您可以通过以下方式将数据从文件读入R(在Windows上测试):
库(stringr)
图书馆(plyr)
图书馆(dplyr)
#从web下载并提取文件
温度%
ldply(.)
名称(米老鼠数据)一些附加选项,以R为基数:
url <- "http://cbio.mskcc.org/microrna_data/human_predictions_S_C_aug2010.txt.gz"
tmp <- tempfile()
##
download.file(url,tmp)
##
data <- read.csv(
gzfile(tmp),
sep="\t",
header=TRUE,
stringsAsFactors=FALSE)
names(data)[1] <- sub("X\\.","",names(data)[1])
##
R> head(data)
mirbase_acc mirna_name gene_id gene_symbol transcript_id ext_transcript_id mirna_alignment
1 MIMAT0000062 hsa-let-7a 5270 SERPINE2 uc002vnu.2 NM_006216 uuGAUAUGUUGGAUGAU-GGAGu
2 MIMAT0000062 hsa-let-7a 494188 FBXO47 uc002hrc.2 NM_001008777 uugaUA-UGUU--GGAUGAUGGAGu
3 MIMAT0000062 hsa-let-7a 80025 PANK2 uc002wkc.2 NM_153638 uugauaUGUUGG-AUGAUGGAgu
4 MIMAT0000062 hsa-let-7a 26036 ZNF451 uc003pdp.2 AK027074 uuGAUAUGUUGGAUGAUGGAGu
5 MIMAT0000062 hsa-let-7a 586 BCAT1 uc001rgd.3 NM_005504 uugaUAUGUUGGAUGAUGGAGu
6 MIMAT0000062 hsa-let-7a 22903 BTBD3 uc002wnz.2 NM_014962 uuGAUAUGUUGGAU-GAUGG-AGu
alignment gene_alignment mirna_start mirna_end gene_start gene_end
1 | :|: ||:|| ||| |||| aaCGGUGAAAUCU-CUAGCCUCu 2 21 495 516
2 || |||: ::||||||||: acaaAUCACAGUUUUUACUACCUUc 2 19 459 483
3 |::||: |||||||| aauuucAUGACUGUACUACCUga 3 17 77 99
4 || || | | ||||||| ccCUCUAGA---UUCUACCUCa 2 21 1282 1300
5 :|| |: |||||||| guagGUAAAGGAAACUACCUCa 2 19 6410 6431
6 || || ||| || ||||| || uaCUUUAAAACAUAUCUACCAUCu 2 21 2265 2288
genome_coordinates conservation align_score seed_cat energy mirsvr_score
1 [hg19:2:224840068-224840089:-] 0.5684 122 0 -14.73 -0.7269
2 [hg19:17:37092945-37092969:-] 0.6464 140 0 -16.38 -0.1156
3 [hg19:20:3904018-3904040:+] 0.6522 139 0 -16.04 -0.2066
4 [hg19:6:56966300-56966318:+] 0.7627 144 7 -14.51 -0.8609
5 [hg19:12:24964511-24964532:-] 0.6775 150 7 -15.09 -0.2735
6 [hg19:20:11906579-11906602:+] 0.5740 131 0 -12.59 -0.2540
然后如上所述,从执行wget
和gunzip
的任何位置读取human_predictions\u S_C_aug2010.txt
data <- read.csv(
"~/tmp/human_predictions_S_C_aug2010.txt",
stringsAsFactors=FALSE,
header=TRUE,
sep="\t")
data您使用的是什么操作系统?3.2.0-4-amd64#1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux说明:R中的Debian GNU/Linux 7.6(wheezy),使用gzfile(tmpFile)
而不是unz(tmpFile,fileName)
对我很有效。由于您使用的是Linux,我假设您拥有wget
和gunzip
命令行实用程序,因此您也可以下载并解压缩.gz
文件,然后像其他任何.txt
文件一样将其读入R。您能否将此作为一个答案?这听起来很有希望!这是一种读取文本文件的好方法,但我认为OP的主要问题是从其.gz
格式中提取底层.txt
文件,因此,也许您可以在回答中解决这个问题?这样做时,为什么有必要将数据
和名称
分开?它现在应该正常工作了read.table
出于某种原因没有捕获列名称-感谢您指出这一点,我将更新我的答案。下载并解压缩
[nathan@nrussell tmp]$ url="http://cbio.mskcc.org/microrna_data/human_predictions_S_C_aug2010.txt.gz"
[nathan@nrussell tmp]$ wget "$url" && gunzip human_predictions_S_C_aug2010.txt.gz
data <- read.csv(
"~/tmp/human_predictions_S_C_aug2010.txt",
stringsAsFactors=FALSE,
header=TRUE,
sep="\t")