2009-09-10 10 views
17

Mam plik tekstowy z kolumny id i name, a ja staram się czytać je w ramki danych w R:odczytywania plików tekstowych z wykorzystaniem read.table

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

Ale z jakiegoś powodu, wiele linii połączyły się - na przykład w wierszu 500 mojej ramki danych, zobaczę coś takiego

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

[Więc jeśli mój oryginalny plik tekstowy ma, powiedzmy, 5000 linie, wymiary będą moim stole kończy się na 1000 rzędach i 2 kolumnach.]

Kilka razy miałem to do czynienia. Czy ktoś wie, co to jest problem, lub jak to naprawić?

+0

Proszę podać plik (lub jego części), ponieważ nie jest jasne, co zrobiłeś źle. –

+0

Od pobieżnego spojrzenia na Twój błąd, przynajmniej jeden problem może polegać na tym, że '500' i' Bob' nie są oddzielone tabulatorem. –

Odpowiedz

28

Od ?read.table: Liczba kolumn danych jest określana na podstawie pierwszych pięciu linii danych wejściowych (lub całego pliku, jeśli ma mniej niż pięć linii), lub z długości nazw kolumn, jeśli została określona i jest dłuższe. Może to być błędne, jeśli wypełnienie lub puste.lines.skip są prawdziwe, więc w razie potrzeby podaj nazwy kolumn.

Twój plik danych może nie być czysty. Będąc bardziej specyficzne pomoże import danych:

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

określi dokładną kolumn i fill=FALSE wymusi danych ramki dwóch kolumn.

+1

cześć .. czy można czytać niestrukturalne pliki tekstowe? –

+0

Myślę, że zapomniałeś nazwy pierwszego parametru: '(file =" footer.txt ", ...)' – iTurki

+3

@JayNirgudkar Przyjrzyj się 'scan' i' readLines'. – lmo

Powiązane problemy