使用R下载和提取.gz数据文件

使用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

我已经试着通过适应这个来解决我的问题。 但是,对于我要使用的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

 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")