valores una tabla seleccionar operaciones observaciones filtros filas entre eliminar como columnas columna cambiar borrar r csv file-io dataframe dplyr

una - Sobrescriba los tipos de columna al importar datos usando readr:: read_csv() cuando hay muchas columnas



operaciones entre columnas en r (2)

Estoy tratando de leer un archivo csv usando readr :: read_csv en R. El archivo csv que estoy importando tiene aproximadamente 150 columnas, solo incluyo las primeras columnas para el ejemplo. Estoy buscando anular la segunda columna del tipo predeterminado (que es la fecha en la que hago read_csv) al carácter u otro formato de fecha.

GIS Join Match Code Data File Year State Name State Code County Name County Code Area Name Persons: Total G0100010 2008-2012 Alabama 1 Autauga County 1 Autauga County, Alabama 54590 df <- data.frame("GIS Join Match Code"="G0100010", "Data File" = "2008-2012", "State" = "Alabama", "County" = "Autauga County", "Population" = 54590)

El problema es que cuando uso readr :: read_csv, parece que es posible que tenga que usar todas las variables al reemplazar los tipos de letra (consulte el error a continuación). Es necesario especificar el reemplazo de todas las 150 columnas individualmente (?). La pregunta es que: ¿hay una manera de especificar el reemplazo del tipo de letra de columnas específicas o una lista de objetos con nombre? En mi caso, sería simplemente anular la columna "Año del archivo de datos".

Entiendo que cualquier columna omitida se analizará automáticamente, lo cual está bien para mi análisis. Creo que se vuelve más complejo ya que los nombres de las columnas tienen un espacio en ellos en el archivo que descargué (por ejemplo, "Año del archivo de datos", "Código de estado"), etc.

tempdata <- read_csv(df, col_types = "cc") Error: You have 135 column names, but 2 columns

La otra opción que supongo, si es posible, ¿es simplemente saltarse la lectura de la segunda columna todos juntos?


Aquí sigue una respuesta más genérica a esta pregunta si alguien encuentra esto en el futuro. Es menos recomendable usar "saltar" para saltar columnas, ya que esto no funcionará si se cambia la estructura de la fuente de datos importada.

Podría ser más fácil en su ejemplo simplemente establecer un tipo de columna predeterminado, y luego definir cualquier columna que difiera de la predeterminada.

Por ejemplo, si todas las columnas son típicamente "d", pero la columna de fecha debería ser "D", cargue los datos de la siguiente manera:

read_csv(df, col_types = cols(.default = "d", date = "D"))

o si, por ejemplo, la fecha de la columna debe ser "D" y la columna "xxx" es "i", haga lo siguiente:

read_csv(df, col_types = cols(.default = "d", date = "D", xxx = "i"))

El uso del "valor predeterminado" anterior es eficaz si tiene varias columnas y solo excepciones específicas (como "fecha" y "xxx").


Sí. Por ejemplo, para forzar que los datos numéricos sean tratados como caracteres:

examplecsv = "a,b,c/n1,2,a/n3,4,d" read_csv(examplecsv) # A tibble: 2 x 3 # a b c # <int> <int> <chr> #1 1 2 a #2 3 4 d read_csv(examplecsv, col_types = cols(b = col_character())) # A tibble: 2 x 3 # a b c # <int> <chr> <chr> #1 1 2 a #2 3 4 d

Las opciones son:

col_character() col_date() col_time() col_datetime() col_double() col_factor() # to enforce, will never be guessed col_integer() col_logical() col_number() col_skip() # to force skip column

Más: http://readr.tidyverse.org/articles/readr.html