如何在R中导入.tsv文件?

And*_*kov 18 import r read.table

我需要读一张桌子

在此输入图像描述

test <- read.table(file='drug_info.tsv')
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
#   line 1 did not have 10 elements
test <- read.table(file='drug_info.tsv', )
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
#   line 1 did not have 10 elements
scan("drug_info.tsv")
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
#   scan() expected 'a real', got 'ChallengeName'
scan(file = "drug_info.tsv")
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
#   scan() expected 'a real', got 'ChallengeName'
Run Code Online (Sandbox Code Playgroud)

我该怎么读?

Rob*_*ert 24

这应该这样做:

read.table(file = 'drug_info.tsv', sep = '\t', header = TRUE)
Run Code Online (Sandbox Code Playgroud)

  • 这应该给出与报告相同的错误,第1行没有足够的元素 (2认同)
  • 我认为这里的否决有点过早,因为我们还没有任何实际数据可以用任何方法进行测试。 (2认同)

小智 9

您可以将数据视为 csv,并指定制表符分隔。

read.csv("drug_info.tsv", sep = "\t")
Run Code Online (Sandbox Code Playgroud)


小智 7

使用包中的fread.table将读取数据,并将跳过使用read.table获得的错误.

require(data.table)

data<-as.data.frame(fread("drug_info.tsv"))
Run Code Online (Sandbox Code Playgroud)


千木郷*_*千木郷 6

utils::read.delim()如果您不想安装其他库,则在这种情况下最常用。示例代码可能类似于:

test <- read.delim(file='drug_info.tsv')
Run Code Online (Sandbox Code Playgroud)

或者可以从 中获得更友好的 io 函数readr library,其中可以直接使用read_tsv命名函数:

test <- read.delim(file='drug_info.tsv')
Run Code Online (Sandbox Code Playgroud)


Rob*_*ans 5

假设只有第一行没有正确数量的元素,并且这是列名称行.跳过第一行:

 d <- read.table('drug_info.tsv', skip=1)
Run Code Online (Sandbox Code Playgroud)

现在看了

 first <- readLines('drug_info.tsv', n=1)
Run Code Online (Sandbox Code Playgroud)

检查它,修复它以使其元素数匹配d然后

 colnames(d) <- first
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,你可以这样做

 x <- readLines('drug_info.tsv')  
Run Code Online (Sandbox Code Playgroud)

和这样的诊断:

 sapply(x, length)
Run Code Online (Sandbox Code Playgroud)


小智 5

您需要包括 fill = TRUE。

test <- read.table(file='drug_info.tsv', sep = '\t', header = TRUE, fill = TRUE)
Run Code Online (Sandbox Code Playgroud)