Profe, esta fue la solución para leer los archivos. No sé si la intención sea leer usando la función read.delim() por que la forma de los datos no permite por default leer la base de datos. Es necesario complementarla con algo más. En mi caso use la libreria tidyr que hace parte de tidyverse.

La solución que implemente, fue la siguiente:

read.delim("jan17Weather.csv") %>% tidyr::separate("date.PRCP.SNOW.TMAX.TMIN", c("date", "PRCP", "SNOW", "TMAX", "TMIN"), sep = "\t") %>% mutate(date = as.Date(date)) %>% mutate_if(is.character, as.numeric) %>% head()

Esto de acuerdo a, que al leer el archivo nos va a retornar un dataframe con solo una columna. De esta forma:

# Not run
read.delim("jan17Weather.csv")

Al sacar los nombres del data frame, evidenciamos que únicamente tenemos una columna.

read.delim("jan17Weather.csv") %>% names()
[1] "date.PRCP.SNOW.TMAX.TMIN"

Donde, la primera y última columna tienen un ". Esto puede ser contra intuitivo y sucede porque los datos del archivo .csv tienen la siguiente estructura

Anotación uno

Anotación uno

con unas " al inicio y al final entendiendo la estructura de datos como si fuese una sola columna de tipo string.

O si aplicamos el atributo quote de la función read.delim() nos retornara la siguiente tabla, la cual supongo es la que usted tiene:

# Not run
read.delim("jan17Weather.csv", quote = "")

Resultando esta forma de lectura contra intuitiva, porque puede tender a pensarse que por tener " el atributo quote de la función read.delim() leería los valores sin problemas, pero este atributo únicamente funciona cuando cada una de las columnas esta rodeada de " al inicio y al final.

Para solucionar esto, existen algunas alternativas. Podemos, reemplazar directamente el archivo .csv quitandole las " y después volviendo a leer el archivo, esto lo solucionaría.

Anotación dos

Anotación dos

# Not tun
read.delim("jan17Weather - ejemplo.csv")

La base de datos “jan17Weather - ejemplo.csv” contiene la modificación quitando las " del archivo original como muestra la Anotación dos.

sin embargo, hacer esto puede ser complejo si estamos conectados a una base de datos o si el archivo o base de datos contiene un alto nivel de datos o si no se quiere modificar la base de datos inicial. Puede usarse la combinación de los siguientes comandos, los cuales use para leer el archivo .csv, Donde:

# Not run
read.delim("jan17Weather.csv") %>% tidyr::separate("date.PRCP.SNOW.TMAX.TMIN", c("date", "PRCP", "SNOW", "TMAX", "TMIN"), sep = "\t")

Uniendo el método read.delim() en un pipeline %>% con la función separate() de la librearía tidyr, acá la documentación. Separando una columna con multiples columnas, es decir, separaremos la columna que nos lee read.delim("jan17Weather.csv") indicandole:

  1. El nombre de la columna actual: "date.PRCP.SNOW.TMAX.TMIN"
  2. Un vector con los nombres de la columna a dividir: c("date", "PRCP", "SNOW", "TMAX", "TMIN")
  3. La expresión regular o REGEX, que separará la columna en cada una de las columnas: SEP = " \t"

Después de separa los valores en columna, vemos que R aún tiene los valores de columnas como caracteres, por lo tanto, implementamos un mutate() para modificar el tipo de los vectores dentro del data frame. De la siguiente manera:

Donde, dentro del mismo pipeline indicamos: mutate(date = as.Date(date)) para modificar la columna date a tipo <date> y luego con el comando: mutate_if(is.character, as.numeric) indicamos que nos modifique todas las columnas que sean tipo caracter, en este caso las columnas faltantes PRCP, SNOW, TMAX, TMIN y que las transforme a tipo <dbl>. Es decir:

  1. Todas las columans son caracteres.
  2. El comando: mutate(date = as.Date(date)) modifica las columna date a tipo fecha.
  3. El comando: mutate_if() necesita una condición, en nuestro caso es is.character() metodo que devuelve valores booleanos. Y necesita un metodo para modificar los valores que cumplan la condición, en nuestro caso as.numeric() método que transforma valores a numeros (incluidos tipo double o <dbl>).

Es necesario denotar que los argumentos ingresados a mutate_if son métodos sin párentesis.

¡Saludos profe!

att: Sergio Mora Pardo

LS0tDQp0aXRsZTogImFyY2hpdm8gcHJvZmUgQ2FybG9zIEFyaWVsIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KUHJvZmUsIGVzdGEgZnVlIGxhIHNvbHVjacOzbiBwYXJhIGxlZXIgbG9zIGFyY2hpdm9zLiBObyBzw6kgc2kgbGEgaW50ZW5jacOzbiBzZWEgbGVlciB1c2FuZG8gbGEgZnVuY2nDs24gYHJlYWQuZGVsaW0oKWAgcG9yIHF1ZSBsYSBmb3JtYSBkZSBsb3MgZGF0b3Mgbm8gcGVybWl0ZSBwb3IgZGVmYXVsdCBsZWVyIGxhIGJhc2UgZGUgZGF0b3MuIEVzIG5lY2VzYXJpbyBjb21wbGVtZW50YXJsYSBjb24gYWxnbyBtw6FzLiBFbiBtaSBjYXNvIHVzZSBsYSBsaWJyZXJpYSBgdGlkeXJgIHF1ZSBoYWNlIHBhcnRlIGRlIGB0aWR5dmVyc2VgLg0KDQpMYSBzb2x1Y2nDs24gcXVlIGltcGxlbWVudGUsIGZ1ZSBsYSBzaWd1aWVudGU6DQoNCmBgYHtyfQ0KIyBNb3N0cmFuZG8gbGFzIHByaW1lcmFzIDYgZmlsYXMuDQpyZWFkLmRlbGltKCJqYW4xN1dlYXRoZXIuY3N2IikgJT4lIHRpZHlyOjpzZXBhcmF0ZSgiZGF0ZS5QUkNQLlNOT1cuVE1BWC5UTUlOIiwgYygiZGF0ZSIsICJQUkNQIiwgIlNOT1ciLCAiVE1BWCIsICJUTUlOIiksIHNlcCA9ICJcdCIpICU+JSBtdXRhdGUoZGF0ZSA9IGFzLkRhdGUoZGF0ZSkpICU+JSBtdXRhdGVfaWYoaXMuY2hhcmFjdGVyLCBhcy5udW1lcmljKSAlPiUgaGVhZCgpDQpgYGANCg0KRXN0byBkZSBhY3VlcmRvIGEsIHF1ZSBhbCBsZWVyIGVsIGFyY2hpdm8gbm9zIHZhIGEgcmV0b3JuYXIgdW4gZGF0YWZyYW1lIGNvbiBzb2xvIHVuYSBjb2x1bW5hLiBEZSBlc3RhIGZvcm1hOg0KDQpgYGB7cn0NCiMgTm90IHJ1bg0KcmVhZC5kZWxpbSgiamFuMTdXZWF0aGVyLmNzdiIpDQpgYGANCg0KDQpgYGB7cn0NCnJlYWQuZGVsaW0oImphbjE3V2VhdGhlci5jc3YiKSAlPiUgaGVhZCgpDQpgYGANCg0KQWwgc2FjYXIgbG9zIG5vbWJyZXMgZGVsIGRhdGEgZnJhbWUsIGV2aWRlbmNpYW1vcyBxdWUgw7puaWNhbWVudGUgdGVuZW1vcyB1bmEgY29sdW1uYS4NCg0KDQpgYGB7cn0NCnJlYWQuZGVsaW0oImphbjE3V2VhdGhlci5jc3YiKSAlPiUgbmFtZXMoKQ0KYGBgDQoNCg0KRG9uZGUsIGxhIHByaW1lcmEgeSDDumx0aW1hIGNvbHVtbmEgdGllbmVuIHVuIGAiYC4gRXN0byBwdWVkZSBzZXIgY29udHJhIGludHVpdGl2byB5IHN1Y2VkZSBwb3JxdWUgbG9zIGRhdG9zIGRlbCBhcmNoaXZvICouY3N2KiB0aWVuZW4gbGEgc2lndWllbnRlIGVzdHJ1Y3R1cmEgDQoNCiFbQW5vdGFjacOzbiB1bm9dKEFub3RhY2lvblVuby5wbmcpDQoNCmNvbiB1bmFzIGAiYCBhbCBpbmljaW8geSBhbCBmaW5hbCBlbnRlbmRpZW5kbyBsYSBlc3RydWN0dXJhIGRlIGRhdG9zIGNvbW8gc2kgZnVlc2UgdW5hIHNvbGEgY29sdW1uYSBkZSB0aXBvIHN0cmluZy4NCg0KTyBzaSBhcGxpY2Ftb3MgZWwgYXRyaWJ1dG8gYHF1b3RlYCBkZSBsYSBmdW5jacOzbiBgcmVhZC5kZWxpbSgpYCBub3MgcmV0b3JuYXJhIGxhIHNpZ3VpZW50ZSB0YWJsYSwgbGEgY3VhbCBzdXBvbmdvIGVzIGxhIHF1ZSB1c3RlZCB0aWVuZToNCg0KYGBge3J9DQojIE5vdCBydW4NCnJlYWQuZGVsaW0oImphbjE3V2VhdGhlci5jc3YiLCBxdW90ZSA9ICIiKQ0KYGBgDQoNCg0KYGBge3J9DQpyZWFkLmRlbGltKCJqYW4xN1dlYXRoZXIuY3N2IiwgcXVvdGUgPSAiIikgJT4lIGhlYWQoKQ0KYGBgDQoNClJlc3VsdGFuZG8gZXN0YSBmb3JtYSBkZSBsZWN0dXJhIGNvbnRyYSBpbnR1aXRpdmEsIHBvcnF1ZSBwdWVkZSB0ZW5kZXIgYSBwZW5zYXJzZSBxdWUgcG9yIHRlbmVyIGAiYCBlbCBhdHJpYnV0byBgcXVvdGVgIGRlIGxhIGZ1bmNpw7NuIGByZWFkLmRlbGltKClgIGxlZXLDrWEgbG9zIHZhbG9yZXMgc2luIHByb2JsZW1hcywgcGVybyBlc3RlIGF0cmlidXRvIMO6bmljYW1lbnRlIGZ1bmNpb25hIGN1YW5kbyAqY2FkYSB1bmEqIGRlIGxhcyBjb2x1bW5hcyBlc3RhIHJvZGVhZGEgZGUgYCJgIGFsIGluaWNpbyB5IGFsIGZpbmFsLg0KDQpQYXJhIHNvbHVjaW9uYXIgZXN0bywgZXhpc3RlbiBhbGd1bmFzIGFsdGVybmF0aXZhcy4gUG9kZW1vcywgcmVlbXBsYXphciBkaXJlY3RhbWVudGUgZWwgYXJjaGl2byAqLmNzdiogcXVpdGFuZG9sZSBsYXMgYCJgIHkgZGVzcHXDqXMgdm9sdmllbmRvIGEgbGVlciBlbCBhcmNoaXZvLCBlc3RvIGxvIHNvbHVjaW9uYXLDrWEuIA0KDQohW0Fub3RhY2nDs24gZG9zXShBbm90YWNpb25kb3MucG5nKQ0KDQpgYGB7cn0NCiMgTm90IHR1bg0KcmVhZC5kZWxpbSgiamFuMTdXZWF0aGVyIC0gZWplbXBsby5jc3YiKQ0KYGBgDQoNCg0KYGBge3J9DQpyZWFkLmRlbGltKCJqYW4xN1dlYXRoZXIgLSBlamVtcGxvLmNzdiIpICU+JSBoZWFkKCkNCmBgYA0KDQpfTGEgYmFzZSBkZSBkYXRvcyAiamFuMTdXZWF0aGVyIC0gZWplbXBsby5jc3YiIGNvbnRpZW5lIGxhIG1vZGlmaWNhY2nDs24gcXVpdGFuZG8gbGFzIGAiYCBkZWwgYXJjaGl2byBvcmlnaW5hbCBjb21vIG11ZXN0cmEgbGEgQW5vdGFjacOzbiBkb3MuXw0KDQpzaW4gZW1iYXJnbywgaGFjZXIgZXN0byBwdWVkZSBzZXIgY29tcGxlam8gc2kgZXN0YW1vcyBjb25lY3RhZG9zIGEgdW5hIGJhc2UgZGUgZGF0b3MgbyBzaSBlbCBhcmNoaXZvIG8gYmFzZSBkZSBkYXRvcyBjb250aWVuZSB1biBhbHRvIG5pdmVsIGRlIGRhdG9zIG8gc2kgbm8gc2UgcXVpZXJlIG1vZGlmaWNhciBsYSBiYXNlIGRlIGRhdG9zIGluaWNpYWwuIFB1ZWRlIHVzYXJzZSBsYSBjb21iaW5hY2nDs24gZGUgbG9zIHNpZ3VpZW50ZXMgY29tYW5kb3MsIGxvcyBjdWFsZXMgdXNlIHBhcmEgbGVlciBlbCBhcmNoaXZvICouY3N2KiwgRG9uZGU6DQoNCmBgYHtyfQ0KIyBOb3QgcnVuDQpyZWFkLmRlbGltKCJqYW4xN1dlYXRoZXIuY3N2IikgJT4lIHRpZHlyOjpzZXBhcmF0ZSgiZGF0ZS5QUkNQLlNOT1cuVE1BWC5UTUlOIiwgYygiZGF0ZSIsICJQUkNQIiwgIlNOT1ciLCAiVE1BWCIsICJUTUlOIiksIHNlcCA9ICJcdCIpDQpgYGANCg0KDQpgYGB7cn0NCnJlYWQuZGVsaW0oImphbjE3V2VhdGhlci5jc3YiKSAlPiUgdGlkeXI6OnNlcGFyYXRlKCJkYXRlLlBSQ1AuU05PVy5UTUFYLlRNSU4iLCBjKCJkYXRlIiwgIlBSQ1AiLCAiU05PVyIsICJUTUFYIiwgIlRNSU4iKSwgc2VwID0gIlx0IikgJT4lIGhlYWQoKQ0KYGBgDQoNClVuaWVuZG8gZWwgbcOpdG9kbyBgcmVhZC5kZWxpbSgpYCBlbiB1biBwaXBlbGluZSBgJT4lYCBjb24gbGEgZnVuY2nDs24gYHNlcGFyYXRlKClgIGRlIGxhIGxpYnJlYXLDrWEgYHRpZHlyYCwgYWPDoSBsYSBbZG9jdW1lbnRhY2nDs25dKGh0dHBzOi8vdGlkeXIudGlkeXZlcnNlLm9yZy9yZWZlcmVuY2Uvc2VwYXJhdGUuaHRtbCkuIFNlcGFyYW5kbyB1bmEgY29sdW1uYSBjb24gbXVsdGlwbGVzIGNvbHVtbmFzLCBlcyBkZWNpciwgc2VwYXJhcmVtb3MgbGEgY29sdW1uYSBxdWUgbm9zIGxlZSBgcmVhZC5kZWxpbSgiamFuMTdXZWF0aGVyLmNzdiIpYCBpbmRpY2FuZG9sZToNCg0KMS4gRWwgbm9tYnJlIGRlIGxhIGNvbHVtbmEgYWN0dWFsOiBgImRhdGUuUFJDUC5TTk9XLlRNQVguVE1JTiJgDQoyLiBVbiB2ZWN0b3IgY29uIGxvcyBub21icmVzIGRlIGxhIGNvbHVtbmEgYSBkaXZpZGlyOiBgYygiZGF0ZSIsICJQUkNQIiwgIlNOT1ciLCAiVE1BWCIsICJUTUlOIilgDQozLiBMYSBleHByZXNpw7NuIHJlZ3VsYXIgbyBSRUdFWCwgcXVlIHNlcGFyYXLDoSBsYSBjb2x1bW5hIGVuIGNhZGEgdW5hIGRlIGxhcyBjb2x1bW5hczogYFNFUCA9ICIgXHQiYA0KDQpEZXNwdcOpcyBkZSBzZXBhcmEgbG9zIHZhbG9yZXMgZW4gY29sdW1uYSwgdmVtb3MgcXVlIGBSYCBhw7puIHRpZW5lIGxvcyB2YWxvcmVzIGRlIGNvbHVtbmFzIGNvbW8gY2FyYWN0ZXJlcywgcG9yIGxvIHRhbnRvLCBpbXBsZW1lbnRhbW9zIHVuIGBtdXRhdGUoKWAgcGFyYSBtb2RpZmljYXIgZWwgdGlwbyBkZSBsb3MgdmVjdG9yZXMgZGVudHJvIGRlbCBkYXRhIGZyYW1lLiBEZSBsYSBzaWd1aWVudGUgbWFuZXJhOg0KDQpgYGB7cn0NCnJlYWQuZGVsaW0oImphbjE3V2VhdGhlci5jc3YiKSAlPiUgdGlkeXI6OnNlcGFyYXRlKCJkYXRlLlBSQ1AuU05PVy5UTUFYLlRNSU4iLCBjKCJkYXRlIiwgIlBSQ1AiLCAiU05PVyIsICJUTUFYIiwgIlRNSU4iKSwgc2VwID0gIlx0IikgJT4lIG11dGF0ZShkYXRlID0gYXMuRGF0ZShkYXRlKSkgJT4lIG11dGF0ZV9pZihpcy5jaGFyYWN0ZXIsIGFzLm51bWVyaWMpICU+JSBoZWFkKCkNCmBgYA0KDQoNCkRvbmRlLCBkZW50cm8gZGVsIG1pc21vIHBpcGVsaW5lIGluZGljYW1vczogYG11dGF0ZShkYXRlID0gYXMuRGF0ZShkYXRlKSlgIHBhcmEgbW9kaWZpY2FyIGxhIGNvbHVtbmEgYGRhdGVgIGEgdGlwbyBgPGRhdGU+YCB5IGx1ZWdvIGNvbiBlbCBjb21hbmRvOiBgbXV0YXRlX2lmKGlzLmNoYXJhY3RlciwgYXMubnVtZXJpYylgIGluZGljYW1vcyBxdWUgbm9zIG1vZGlmaXF1ZSB0b2RhcyBsYXMgY29sdW1uYXMgcXVlIHNlYW4gdGlwbyBjYXJhY3RlciwgZW4gZXN0ZSBjYXNvIGxhcyBjb2x1bW5hcyBmYWx0YW50ZXMgYFBSQ1BgLCBgU05PV2AsIGBUTUFYYCwgYFRNSU5gIHkgcXVlIGxhcyB0cmFuc2Zvcm1lIGEgdGlwbyBgPGRibD5gLiBFcyBkZWNpcjoNCg0KMC4gVG9kYXMgbGFzIGNvbHVtYW5zIHNvbiBjYXJhY3RlcmVzLg0KMS4gRWwgY29tYW5kbzogYG11dGF0ZShkYXRlID0gYXMuRGF0ZShkYXRlKSlgIG1vZGlmaWNhIGxhcyBjb2x1bW5hIGBkYXRlYCBhIHRpcG8gZmVjaGEuDQoyLiBFbCBjb21hbmRvOiBgbXV0YXRlX2lmKClgIG5lY2VzaXRhIHVuYSBjb25kaWNpw7NuLCBlbiBudWVzdHJvIGNhc28gZXMgYGlzLmNoYXJhY3RlcigpYCBtZXRvZG8gcXVlIGRldnVlbHZlIHZhbG9yZXMgYm9vbGVhbm9zLiBZIG5lY2VzaXRhIHVuIG1ldG9kbyBwYXJhIG1vZGlmaWNhciBsb3MgdmFsb3JlcyBxdWUgY3VtcGxhbiBsYSBjb25kaWNpw7NuLCBlbiBudWVzdHJvIGNhc28gYGFzLm51bWVyaWMoKWAgbcOpdG9kbyBxdWUgdHJhbnNmb3JtYSB2YWxvcmVzIGEgbnVtZXJvcyAoaW5jbHVpZG9zIHRpcG8gYGRvdWJsZWAgbyBgPGRibD5gKS4NCg0KX0VzIG5lY2VzYXJpbyBkZW5vdGFyIHF1ZSBsb3MgYXJndW1lbnRvcyBpbmdyZXNhZG9zIGEgYG11dGF0ZV9pZmAgc29uIG3DqXRvZG9zIHNpbiBww6FyZW50ZXNpcy5fDQoNCsKhU2FsdWRvcyBwcm9mZSENCg0KYXR0OiBbU2VyZ2lvIE1vcmEgUGFyZG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJnaW9tb3JhMDMpDQo=