如何将Unix中创建的文件读入Windows 10计算机上的R?

如何将Unix中创建的文件读入Windows 10计算机上的R?,r,file-conversion,R,File Conversion,我从网上下载并解压缩了一个在Unix系统上创建的文件。我需要把它读入一个R中的tibble,并使用正确的变量名 UKBPP_outcome <- read_tsv ("3_UK_Biobank_parental_17May2018") UKBPP\u结果数据。table的fread函数非常适合于此,特别是考虑到数据的大小 如果我们下载有问题的文件,我们可以先在R中解压它,然后使用数据读入它。表: library(data.table) file <- unzip("./UKB_A

我从网上下载并解压缩了一个在Unix系统上创建的文件。我需要把它读入一个R中的tibble,并使用正确的变量名

UKBPP_outcome <- read_tsv ("3_UK_Biobank_parental_17May2018")

UKBPP\u结果
数据。table
fread
函数非常适合于此,特别是考虑到数据的大小

如果我们下载有问题的文件,我们可以先在R中解压它,然后使用
数据读入它。表

library(data.table)

file <- unzip("./UKB_AD_sumstats_17May2018.zip")

f1 <- fread(file[2])

                      SNP A1 A2    BETA     SE       P DIR CHR        BP
      1: 1:101166253_TG_T  T TG -0.0076 0.0114 0.50360  -+   1 101166253
      2:  1:102884223_A_G  A  G -0.0037 0.0102 0.71920  --   1 102884223
      3:  1:105351556_C_T  T  C -0.0034 0.0099 0.72850  -+   1 105351556
      4:  1:105412363_T_C  T  C  0.0115 0.0105 0.27400  +-   1 105412363
      5:  1:105413338_A_G  A  G  0.0083 0.0099 0.40350  ++   1 105413338
     ---                                                                
7795601:        rs9999993  A  T  0.0050 0.0100 0.62050  ++   4  98562671
7795602:        rs9999995  A  G -0.0012 0.0102 0.90980  -+   4 185171608
7795603:        rs9999996  A  C -0.0257 0.0104 0.01376  --   4  69782467
7795604:        rs9999997  A  G -0.0057 0.0100 0.56740  +-   4 163870478
7795605:        rs9999998  T  C -0.0004 0.0102 0.96540  -+   4 117161848
因此,所讨论的文件是以空格分隔的

出于好奇,我还运行了一个基准测试,看看
fread
处理数据大小的效果有多好。我第一次尝试运行
read.table
,但没有指定
colClasses
,在观看鼠标滚轮旋转几分钟后,我放弃了。我返回并添加了
skip=1
,以及
colClasses
向量:

library(rbenchmark)

benchmark( "fread" = { f1 <- fread(file)},
 "read.table" = { f2 <- read.table(file, sep = " ", colClasses = c("character", "character", "character", "numeric", "numeric", "numeric", "character", "integer", "integer"), skip = 1)},
replications =1)

         test replications elapsed relative user.self sys.self user.child sys.child
1      fread            1    2.04    1.000      3.64     0.18         NA        NA
2 read.table            1   17.20    8.431     16.03     1.13         NA        NA
库(rbenchmark)

基准(“fread”={f1
数据。table
fread
函数非常适合于此,特别是考虑到数据的大小

如果我们下载有问题的文件,我们可以先在R中解压它,然后使用
数据读入它。表

library(data.table)

file <- unzip("./UKB_AD_sumstats_17May2018.zip")

f1 <- fread(file[2])

                      SNP A1 A2    BETA     SE       P DIR CHR        BP
      1: 1:101166253_TG_T  T TG -0.0076 0.0114 0.50360  -+   1 101166253
      2:  1:102884223_A_G  A  G -0.0037 0.0102 0.71920  --   1 102884223
      3:  1:105351556_C_T  T  C -0.0034 0.0099 0.72850  -+   1 105351556
      4:  1:105412363_T_C  T  C  0.0115 0.0105 0.27400  +-   1 105412363
      5:  1:105413338_A_G  A  G  0.0083 0.0099 0.40350  ++   1 105413338
     ---                                                                
7795601:        rs9999993  A  T  0.0050 0.0100 0.62050  ++   4  98562671
7795602:        rs9999995  A  G -0.0012 0.0102 0.90980  -+   4 185171608
7795603:        rs9999996  A  C -0.0257 0.0104 0.01376  --   4  69782467
7795604:        rs9999997  A  G -0.0057 0.0100 0.56740  +-   4 163870478
7795605:        rs9999998  T  C -0.0004 0.0102 0.96540  -+   4 117161848
因此,所讨论的文件是以空格分隔的

出于好奇,我还运行了一个基准测试,看看
fread
处理数据大小有多好。我第一次尝试运行
read.table
,但没有指定
colClasses
,在观察鼠标滚轮旋转几分钟后,我放弃了。我返回并添加了
skip=1
,以及
colClasses
向量:

library(rbenchmark)

benchmark( "fread" = { f1 <- fread(file)},
 "read.table" = { f2 <- read.table(file, sep = " ", colClasses = c("character", "character", "character", "numeric", "numeric", "numeric", "character", "integer", "integer"), skip = 1)},
replications =1)

         test replications elapsed relative user.self sys.self user.child sys.child
1      fread            1    2.04    1.000      3.64     0.18         NA        NA
2 read.table            1   17.20    8.431     16.03     1.13         NA        NA
库(rbenchmark)

基准测试(“fread”={f1可能列是空格分隔的,而不是tab?在这种情况下,请尝试
read\u table
。这也有助于提供文件或其内容的较小示例;没有人会下载700+MB来回答问题:)大多数数据都是以csv或fwf的形式分发的。为什么要假设tsv?您可以尝试
data.table::fread()
它还具有自动检测分隔符和
colClasses
的附加功能。如果文件是固定宽度的文件,它将不起作用。删除了与实际问题无关的操作系统标记。可能列是空格分隔的,而不是制表符?在这种情况下,请尝试
读取表
。它还将有助于提供一个较小的操作系统示例f文件或其内容;没有人会下载700+MB来回答以下问题:)大多数数据都是以csv或fwf的形式分发的。为什么要使用tsv?您可以尝试
data.table::fread()
它还具有自动检测分隔符和
colClasses
的附加功能。如果文件是固定宽度的文件,它将不起作用。已删除与实际问题无关的操作系统标记。
library(rbenchmark)

benchmark( "fread" = { f1 <- fread(file)},
 "read.table" = { f2 <- read.table(file, sep = " ", colClasses = c("character", "character", "character", "numeric", "numeric", "numeric", "character", "integer", "integer"), skip = 1)},
replications =1)

         test replications elapsed relative user.self sys.self user.child sys.child
1      fread            1    2.04    1.000      3.64     0.18         NA        NA
2 read.table            1   17.20    8.431     16.03     1.13         NA        NA