Как импортировать файл .tsv

Мне нужно прочитать таблицу, которая является .tsv файл в R.

enter image description here

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'

Как я должен это прочитать?

Ответ 1

Это должно сделать это:

read.table(file = 'drug_info.tsv', sep = '\t', header = TRUE)

Ответ 2

Использование fread из таблицы данных package.table будет считывать данные и будет пропускать ошибку, которую вы получаете с помощью read.table.

require(data.table)

data<-as.data.frame(fread("drug_info.tsv"))

Ответ 3

Предполагая, что только первая строка не имеет правильного количества элементов и что это строка имен столбцов. Пропустить первую строку:

 d <- read.table('drug_info.tsv', skip=1)

Теперь прочитайте его

 first <- readLines('drug_info.tsv', n=1)

Осмотрите его, исправьте так, чтобы его количество соответствовало d, а затем

 colnames(d) <- first

Если это не сработает, вы можете сделать

 x <- readLines('drug_info.tsv')  

и диагностики следующим образом:

 sapply(x, length)

Ответ 4

Вы можете обрабатывать данные как CSV и указывать удаление вкладок.

read.csv("drug_info.tsv", sep = "\t")

Ответ 5

utils::read.delim() чаще всего используется в таком случае, если вы не хотите устанавливать другую библиотеку. Пример кода может быть что-то вроде:

test <- read.delim(file='drug_info.tsv')

или гораздо более дружественные функции io могут быть доступны из readr library, где именованная функция read_tsv доступна напрямую:

test <- readr::read_tsv('drug_info.tsv')