Mit read.csv nur zwei von drei Spalten lesen

12

Ich habe einen ASCII-Datensatz, der aus drei Spalten besteht, aber nur die letzten beiden sind tatsächliche Daten. Jetzt möchte ich ein Punktdiagramm der Daten mit erstellen read.csv(file = "result1", sep= " "). R liest alle drei Spalten. Wie vermeide ich das?

Chris
quelle
5
Ich lasse es hier, aber bitte stellen Sie zukünftige grundlegende R-Fragen zu StackOverflow .
Tatsächlich scheint der derzeitige Konsens darin zu bestehen, dass R-Fragen jetzt im Lebenslauf willkommen sind. Ich kann die Diskussion derzeit nicht finden, sie befindet sich jedoch irgendwo auf meta.stats.stackexchange.com .
Waldir Leoncio

Antworten:

20

Mit dem colClassesArgument read.csvkönnen Sie die gewünschten Spalten auswählen. In diesem Fall können Sie einstellen colClassesaufc("NULL", NA, NA)

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

Im Allgemeinen können Sie colClasses verwenden, um die bestimmten Spaltentypen anzugeben. NAbedeutet, den Standardansatz zu verwenden, bei dem versucht wird, herauszufinden, was die Spalte automatisch ist. Finden Sie in der Hilfeseite read.csvfür weitere Details.

Brian Diggs
quelle
11

Eine andere Möglichkeit besteht darin, die gesamte Datei einzulesen, aber nur zwei der Spalten beizubehalten, z.

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

oder unter Verwendung von Spaltennamen, z. wenn die Spalten 'col1, col2, col3' heißen

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]
David LeBauer
quelle
Answer by @Brian nimmt weniger Zeit in Anspruch als deins.
Haroon Rashid
0

Dieser Vorgang nimmt weniger Zeit in Anspruch als die angegebenen Antworten

library(data.table)
fread(file="result1", sep=" ", colClasses=c("NULL", NA, NA))
Haroon Rashid
quelle