如何将Unix中创建的文件读入Windows 10计算机上的R?
我从网上下载并解压缩了一个在Unix系统上创建的文件。我需要把它读入一个R中的tibble,并使用正确的变量名如何将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
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