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ąć?


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,

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 .


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')]

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))
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.