J'ai besoin de lire un tableau
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'
Comment devrais-je le lire?
Cela devrait le faire:
read.table(file = 'drug_info.tsv', sep = '\t', header = TRUE)
L'utilisation de fread à partir du paquet data.table lira les données et évitera l'erreur que vous obtenez avec read.table.
require(data.table)
data<-as.data.frame(fread("drug_info.tsv"))
En supposant que seule la première ligne n'ait pas le bon nombre d'éléments et qu'il s'agit de la ligne des noms de colonnes. Passer la première ligne:
d <- read.table('drug_info.tsv', skip=1)
Maintenant le lire
first <- readLines('drug_info.tsv', n=1)
Inspectez-le, corrigez-le de sorte que son nombre d'éléments corresponde à d
, puis
colnames(d) <- first
Si cela ne fonctionne pas, vous pouvez faire
x <- readLines('drug_info.tsv')
et des diagnostics comme celui-ci:
sapply(x, length)
Vous pouvez traiter les données comme un fichier csv et spécifier une suppression par des tabulations.
read.csv("drug_info.tsv", sep = "\t")
utils::read.delim()
est le plus souvent utilisé dans ce cas si vous ne souhaitez pas installer une autre bibliothèque. Le code exemple pourrait être quelque chose comme:
test <- read.delim(file='drug_info.tsv')
ou des fonctions io beaucoup plus conviviales pourraient être disponibles à partir de readr library
, où un read_tsv
fonction nommée est disponible directement:
test <- readr::read_tsv('drug_info.tsv')