funzione read.delim () per colonne che iniziano in punti diversi in R

quindi sto cercando di usare la funzione read.delim () per guardare un CSV (so che posso usare read.csv (), ma devo farlo in questo modo). il file csv ha colonne che iniziano in punti diversi, così come vorrei andare su incorperating il codice come quello? il csv assomiglierebbe a questo (esempio):

,,,Column_D, Column_E,
Column_A, Column_B, Column_C,,,
1,1,2,3,4,
.,.,.,.,.,
.,.,.,.,.,

ho cercato di fare questo:

    dataRAW <-  read_delim("./data/something.csv", delim = ",", col_types = cols(
          Column_A = col_integer(),
          Column_B = col_integer(),
          Column_C = col_integer(),
          Column_D = col_integer(),
          Column_E = col_integer()

        ), skip = 1)

ciò che accade quando R legge il file è che le colonne A B C hanno intestazioni corrette, ma E e D non lo fanno. vorrei che tutti avessero i loro titoli appropriati. se non uso la funzione skip, allora le colonne D ed E ottengono le intestazioni corrette, ma poi le altre (ABC) non lo fanno.

EN From: read.delim() function for columns that start at different point in R

More similar articles:

3 Comments

  1. @Tung Ha funzionato, mi sono reso conto che potevo solo usare i nomi col _ (c ()) e saltare 2! non posso credere che ho trascurato quello. grazie! grazie!

  2. come proposto da @Tung è possibile saltare le 2 prime righe, ma poi invece di impostare manualmente i nomi delle colonne è possibile raccogliere le due prime righe dai dati e combinarli per impostare i nomi delle colonne.

    library(tidyverse)

    d <- read_delim("~/Bureau/something.csv", delim = ",", skip = 2, col_names = FALSE)
    names1 <- read_delim("~/Bureau/something.csv", delim = ",",
    skip = 0, n_max = 1, col_names = FALSE) %>% t %>% as.vector
    names2 <- read_delim("~/Bureau/something.csv", delim = ",",
    skip = 1, n_max = 1, col_names = FALSE) %>% t %>% as.vector

    rimuovere la “NA” dai nomi delle colonne e poi combinarli con una semplice pasta.
    notate che nel vostro esempio l’ultima colonna non ha nome e “Column _ E” inizia con un carattere di spazio…

    names1[is.na(names1)] <- ""
    names2[is.na(names2)] <- ""

    colnames(d) <- paste0(names1, names2)

    d
    #> # A tibble: 3 x 6
    #> Column_A ` Column_B` ` Column_C` Column_D ` Column_E` ``
    #> <chr> <chr> <chr> <chr> <chr> <chr>
    #> 1 1 1 2 3 4 <NA>
    #> 2 . . . . . <NA>
    #> 3 . . . . . <NA>

    creato il 2018-03-10 dal pacchetto reprex (v0.2.0).

Leave a Reply

Your email address will not be published. Required fields are marked *