web-dev-qa-db-fra.com

Lecture de fichiers texte à l'aide de read.table

J'ai un fichier texte avec une colonne id et name, et j'essaie de le lire dans un bloc de données dans R:

d = read.table("foobar.txt", sep="\t")

Mais pour une raison quelconque, beaucoup de lignes sont fusionnées - par exemple, dans la ligne 500 de mon bloc de données, je vais voir quelque chose comme

row 500: 500 Bob\n501\tChris\n502\tGrace

[Donc, si mon fichier texte d'origine a, disons, 5000 lignes, les dimensions de ma table ne finiront que par 1000 lignes et 2 colonnes.]

J'ai eu ça plusieurs fois. Quelqu'un sait-il quel est le problème ou comment le résoudre?

19
Ruld

De ?read.table: Le nombre de colonnes de données est déterminé en examinant les cinq premières lignes d'entrée (ou le fichier entier s'il contient moins de cinq lignes), ou la longueur des noms de col s'il est spécifié et est plus long. Cela peut éventuellement être faux si fill ou blank.lines.skip sont vrais, alors spécifiez col.names si nécessaire.

Donc, votre fichier de données n'est peut-être pas propre. Le fait d'être plus précis aidera l'importation de données:

d = read.table("foobar.txt", 
               sep="\t", 
               col.names=c("id", "name"), 
               fill=FALSE, 
               strip.white=TRUE)

spécifiera les colonnes exactes et fill=FALSE forcera un bloc de données à deux colonnes.

32
ayman