Leggere solo due colonne su tre con read.csv


12

Ho un set di dati ASCII composto da tre colonne, ma solo gli ultimi due sono dati effettivi. Ora voglio creare un diagramma a punti dei dati utilizzando read.csv(file = "result1", sep= " "). R legge tutte e tre le colonne. Come evito questo?


5
Lascio qui, ma ti preghiamo di porre future domande R di base su StackOverflow .

In realtà, l'attuale consenso sembra essere che le domande R sono ora benvenute nel CV. Non riesco a trovare la discussione in questo momento, ma è da qualche parte in meta.stats.stackexchange.com .
Waldir Leoncio,

Risposte:


20

È possibile utilizzare l' colClassesargomento read.csvper selezionare le colonne desiderate. In questo caso, è possibile impostare colClassessuc("NULL", NA, NA)

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

Più in generale, è possibile utilizzare colClasses per specificare i tipi particolari di colonne; NAsignifica utilizzare l'approccio predefinito che è quello di provare a capire quale sia automaticamente la colonna. Vedi la pagina di aiuto read.csvper maggiori dettagli.


11

Un'altra opzione è leggere l'intero file, ma mantenere solo due delle colonne, ad esempio:

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

oppure, usando i nomi delle colonne, ad es. se le colonne sono denominate "col1, col2, col3"

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]

La risposta di @Brian richiede meno tempo rispetto alla tua.
Haroon Rashid,

0

Questo richiede meno tempo rispetto alle risposte fornite

library(data.table)
fread(file="result1", sep=" ", colClasses=c("NULL", NA, NA))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.