Cómo importar un CSV o un Excel a R

Estos ejemplos usan archivos con datos ficticios que puedes descargar: ventas.csv y facturas.xlsx. El código los lee directamente de grafoso.

Leer un CSV

library(tidyverse)
ventas <- read_csv("https://grafoso.com/r/ventas.csv", show_col_types = FALSE)
ventas
# A tibble: 54 × 5
   fecha      sucursal producto cantidad precio
   <date>     <chr>    <chr>       <dbl>  <dbl>
 1 2026-01-11 Centro   Café           19     85
 2 2026-01-13 Centro   Té             13     60
 3 2026-01-03 Centro   Galletas       16     45
 4 2026-01-12 Norte    Café           13     85
 5 2026-01-17 Norte    Té             23     60
 6 2026-01-02 Norte    Galletas       15     45
 7 2026-01-14 Sur      Café           36     85
 8 2026-01-03 Sur      Té             25     60
 9 2026-01-03 Sur      Galletas       37     45
10 2026-02-02 Centro   Café           19     85
11 2026-02-08 Centro   Té             15     60
12 2026-02-19 Centro   Galletas       37     45
# ℹ 42 more rows

Para tu propio archivo, pon su ruta, como read_csv("datos/ventas.csv"). Si tu CSV usa punto y coma, prueba con read_csv2().

Revisar qué se leyó

glimpse() muestra cada columna con su tipo. Comprueba que las fechas sean date y los importes, dbl.

glimpse(ventas)
Rows: 54
Columns: 5
$ fecha    <date> 2026-01-11, 2026-01-13, 2026-01-03, 2026-01-12, 2026-0…
$ sucursal <chr> "Centro", "Centro", "Centro", "Norte", "Norte", "Norte"…
$ producto <chr> "Café", "Té", "Galletas", "Café", "Té", "Galletas", "Ca…
$ cantidad <dbl> 19, 13, 16, 13, 23, 15, 36, 25, 37, 19, 15, 37, 26, 20,…
$ precio   <dbl> 85, 60, 45, 85, 60, 45, 85, 60, 45, 85, 60, 45, 85, 60,…

Leer un Excel

Los archivos en la web hay que descargarlos primero. Con uno en tu equipo, basta read_excel("facturas.xlsx", sheet = "Facturas").

library(readxl)
archivo <- tempfile(fileext = ".xlsx")
download.file("https://grafoso.com/r/facturas.xlsx", archivo, mode = "wb", quiet = TRUE)
excel_sheets(archivo)
facturas <- read_excel(archivo, sheet = "Facturas")
facturas
[1] "Facturas" "Notas"   
# A tibble: 6 × 4
  folio cliente          fecha      total
  <chr> <chr>            <chr>      <dbl>
1 F-101 Abarrotes Luna   2026-01-15 11600
2 F-102 Papelería Sol    2026-01-28  5800
3 F-103 Taller Río       2026-02-10  2320
4 F-104 Farmacia Mar     2026-02-22  8700
5 F-105 Ferretería Cielo 2026-03-05  4640
6 F-106 Panadería Sur    2026-03-19  1740

Aquí la fecha quedó como texto (chr) porque así está en el archivo. Ve cómo limpiar datos.

Preguntas frecuentes

¿Qué significa «could not find function»?

Normalmente, que falta cargar el paquete. Corre library(tidyverse) o library(readxl) primero.

¿Y si salen mal los acentos?

Puede ser la codificación del archivo. En read_csv prueba con locale = locale(encoding = "latin1").

Fuentes oficiales