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?


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

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.


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

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))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.