Lectura de solo dos de las tres columnas con read.csv

12

Tengo un conjunto de datos ASCII que consta de tres columnas, pero solo las dos últimas son datos reales. Ahora quiero crear un diagrama de puntos de los datos usando read.csv(file = "result1", sep= " "). R lee las tres columnas. ¿Cómo evito esto?

Chris
fuente
55
Lo dejaré aquí, pero haga futuras preguntas básicas sobre R en StackOverflow .
En realidad, el consenso actual parece ser que las preguntas R ahora son bienvenidas en CV. No puedo encontrar la discusión en este momento, pero está en algún lugar en meta.stats.stackexchange.com .
Waldir Leoncio
stackoverflow.com/questions/5788117/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

20

Puede usar el colClassesargumento read.csvpara seleccionar las columnas que desee. En este caso, se puede establecer colClassesac("NULL", NA, NA)

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

De manera más general, puede usar colClasses para especificar los tipos particulares de columnas; NAsignifica utilizar el enfoque predeterminado que consiste en tratar de descubrir cuál es la columna automáticamente. Vea la página de ayuda read.csvpara más detalles.

Brian Diggs
fuente
11

Otra opción es leer todo el archivo, pero mantener solo dos de las columnas, por ejemplo:

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

o, usando nombres de columna, por ejemplo. si las columnas se llaman 'col1, col2, col3'

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]
David LeBauer
fuente
La respuesta de @Brian toma menos tiempo en comparación con la tuya.
Haroon Rashid
0

Este lleva menos tiempo en comparación con las respuestas proporcionadas

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