Czytanie tylko dwóch z trzech kolumn za pomocą read.csv

12

Mam zestaw danych ascii, który składa się z trzech kolumn, ale tylko dwie ostatnie są danymi rzeczywistymi. Teraz chcę utworzyć dotchart danych za pomocą read.csv(file = "result1", sep= " "). R odczytuje wszystkie trzy kolumny. Jak tego uniknąć?

Chris
źródło
5
Zostawię to tutaj, ale proszę zadawać przyszłe podstawowe pytania R na StackOverflow .
Właściwie obecny konsensus wydaje się, że pytania R są teraz mile widziane w CV. Nie mogę teraz znaleźć dyskusji, ale jest ona gdzieś w meta.stats.stackexchange.com .
Waldir Leoncio,
stackoverflow.com/questions/5788117/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Odpowiedzi:

20

Możesz użyć colClassesargumentu, read.csvaby wybrać żądane kolumny. W takim przypadku możesz ustawić colClassesnac("NULL", NA, NA)

read.csv(file="result1", sep=" ", colClasses=c("NULL", NA, NA))

Mówiąc bardziej ogólnie, można użyć colClasses, aby określić poszczególne typy kolumn; NAoznacza zastosowanie domyślnego podejścia polegającego na próbie ustalenia, która kolumna jest automatycznie. Aby uzyskać read.csvwięcej informacji, zobacz stronę pomocy .

Brian Diggs
źródło
11

Inną opcją jest odczytanie całego pliku, ale zachowaj tylko dwie kolumny, np .:

read.csv(file = "result1", sep = " ")[ ,1:2]

lub używając nazw kolumn, np. jeśli kolumny mają nazwy „col1, col2, col3”

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]
David LeBauer
źródło
Odpowiedź @Brian zajmuje mniej czasu w porównaniu do twojej.
Haroon Rashid
0

Ten zajmuje mniej czasu w porównaniu do podanych odpowiedzi

library(data.table)
fread(file="result1", sep=" ", colClasses=c("NULL", NA, NA))
Haroon Rashid
źródło