Uso de Tidyverse
Tidyverse es una colección de paquetes de R que los científicos de datos suelen usar en análisis de datos cotidianos. Incluye paquetes para la importación de datos (readr
), visualización de datos (ggplot2
), manipulación de datos (dplyr
, tidyr
), programación funcional (purrr
) y creación de modelos (tidymodels
), etc. Los paquetes de tidyverse
están diseñados para trabajar juntos sin problemas y seguir un conjunto coherente de principios de diseño.
Microsoft Fabric distribuye la versión estable más reciente de tidyverse
con cada versión en tiempo de ejecución. Importe y empiece a usar los paquetes de R conocidos.
Requisitos previos
Obtenga una suscripción a Microsoft Fabric. También puede registrarse para obtener una evaluación gratuita de Microsoft Fabric.
Inicie sesión en Microsoft Fabric.
Use el conmutador de experiencia en el lado izquierdo de la página principal para cambiar a la experiencia de ciencia de datos de Synapse.
Abra o cree un cuaderno. Para obtener información sobre cómo hacerlo, consulte Uso de cuadernos de Microsoft Fabric.
Establezca la opción de lenguaje en SparkR (R) para cambiar el lenguaje principal.
Adjunte el cuaderno a un almacén de lago. En el lado izquierdo, seleccione Añadir para añadir un almacén de lago existente o crear uno.
Cargar tidyverse
# load tidyverse
library(tidyverse)
Importación de datos
readr
es un paquete de R que proporciona herramientas para leer archivos de datos rectangulares, como CSV, TSV y archivos de ancho fijo. readr
proporciona una manera rápida y sencilla de leer archivos de datos rectangulares, como proporcionar funciones read_csv()
y read_tsv()
para leer archivos CSV y TSV, respectivamente.
Primero, vamos a crear un data.frame de R, escríbalo en el lago de datos mediante readr::write_csv()
y léalo de nuevo con readr::read_csv()
.
Nota:
Para acceder a los archivos de Lakehouse mediante readr
, debe usar la ruta de acceso de la API de archivos. En el explorador de Lakehouse, haga clic con el botón derecho en el archivo o la carpeta a la que desea acceder y copie su ruta de acceso de la API de archivos en el menú contextual.
# create an R data frame
set.seed(1)
stocks <- data.frame(
time = as.Date('2009-01-01') + 0:9,
X = rnorm(10, 20, 1),
Y = rnorm(10, 20, 2),
Z = rnorm(10, 20, 4)
)
stocks
A continuación, vamos a escribir los datos en lakehouse mediante la ruta de acceso de la API de archivo.
# write data to lakehouse using the File API path
temp_csv_api <- "/lakehouse/default/Files/stocks.csv"
readr::write_csv(stocks,temp_csv_api)
Lea los datos del lago de datos.
# read data from lakehouse using the File API path
stocks_readr <- readr::read_csv(temp_csv_api)
# show the content of the R date.frame
head(stocks_readr)
Ordenación de datos
tidyr
es un paquete de R que proporciona herramientas para trabajar con datos desordenados. Las funciones principales de tidyr
están diseñadas para ayudarle a cambiar la forma de los datos en un formato ordenado. Los datos ordenados tienen una estructura específica en la que cada variable es una columna y cada observación es una fila, lo que facilita el trabajo con datos en R y otras herramientas.
Por ejemplo, la función gather()
de tidyr
se puede usar para convertir datos anchos en datos largos. Este es un ejemplo:
# convert the stock data into longer data
library(tidyr)
stocksL <- gather(data = stocks, key = stock, value = price, X, Y, Z)
stocksL
Programación funcional
purrr
es un paquete de R que mejora el kit de herramientas de programación funcional de R proporcionando un conjunto completo y coherente de herramientas para trabajar con funciones y vectores. El mejor lugar para empezar con purrr
es la familia de funciones map()
que permiten sustituir muchos bucles for por código más sucinto y fácil de leer. Este es un ejemplo de cómo usar map()
para aplicar una función a cada elemento de una lista:
# double the stock values using purrr
library(purrr)
stocks_double = map(stocks %>% select_if(is.numeric), ~.x*2)
stocks_double
Manipulación de datos
dplyr
es un paquete de R que proporciona un conjunto coherente de verbos que le ayudan a resolver los problemas de manipulación de datos más comunes, como la selección de variables basadas en los nombres, la selección de casos en función de los valores, la reducción de varios valores a un solo resumen y el cambio de la ordenación de las filas, etc. Estos son algunos ejemplos:
# pick variables based on their names using select()
stocks_value <- stocks %>% select(X:Z)
stocks_value
# pick cases based on their values using filter()
filter(stocks_value, X >20)
# add new variables that are functions of existing variables using mutate()
library(lubridate)
stocks_wday <- stocks %>%
select(time:Z) %>%
mutate(
weekday = wday(time)
)
stocks_wday
# change the ordering of the rows using arrange()
arrange(stocks_wday, weekday)
# reduce multiple values down to a single summary using summarise()
stocks_wday %>%
group_by(weekday) %>%
summarize(meanX = mean(X), n= n())
Visualización de datos
ggplot2
es un paquete de R para crear gráficos mediante declaración, basándose en la gramática de gráficos. Usted proporciona los datos, le indica a ggplot2
cómo asignar variables a la estética, qué primitivas gráficas utilizar, y este se encarga de los detalles. Estos son algunos ejemplos:
# draw a chart with points and lines all in one
ggplot(stocksL, aes(x=time, y=price, colour = stock)) +
geom_point()+
geom_line()
# draw a boxplot
ggplot(stocksL, aes(x=time, y=price, colour = stock)) +
geom_boxplot()
Creación de modelos
El marco tidymodels
es una colección de paquetes para el modelado y el aprendizaje automático mediante principios tidyverse
. Trata una lista de paquetes principales para una amplia variedad de tareas de creación de modelos, como rsample
para la división de muestras de conjunto de datos de entrenamiento y prueba, parsnip
para la especificación del modelo, recipes
para el preprocesamiento de datos, workflows
para el modelado de flujos de trabajo, tune
para el ajuste de hiperparámetros, yardstick
para la evaluación del modelo, broom
para la ordenación de salidas del modelo y dials
para administrar parámetros de ajuste. Para obtener más información sobre los paquetes, visite el sitio web de tidymodels. Este es un ejemplo de creación de un modelo de regresión lineal para predecir las millas por galón (mpg) de un automóvil en función de su peso (wt):
# look at the relationship between the miles per gallon (mpg) of a car and its weight (wt)
ggplot(mtcars, aes(wt,mpg))+
geom_point()
Desde el gráfico de dispersión, la relación se ve aproximadamente lineal y la varianza parece constante. Vamos a intentar modelar esto mediante la regresión lineal.
library(tidymodels)
# split test and training dataset
set.seed(123)
split <- initial_split(mtcars, prop = 0.7, strata = "cyl")
train <- training(split)
test <- testing(split)
# config the linear regression model
lm_spec <- linear_reg() %>%
set_engine("lm") %>%
set_mode("regression")
# build the model
lm_fit <- lm_spec %>%
fit(mpg ~ wt, data = train)
tidy(lm_fit)
Aplique el modelo de regresión lineal para predecir en el conjunto de datos de prueba.
# using the lm model to predict on test dataset
predictions <- predict(lm_fit, test)
predictions
Echemos un vistazo al resultado del modelo. Podemos dibujar el modelo como un gráfico de líneas y los datos de verdad del campo de prueba como puntos en el mismo gráfico. El modelo tiene buen aspecto.
# draw the model as a line chart and the test data groundtruth as points
lm_aug <- augment(lm_fit, test)
ggplot(lm_aug, aes(x = wt, y = mpg)) +
geom_point(size=2,color="grey70") +
geom_abline(intercept = lm_fit$fit$coefficients[1], slope = lm_fit$fit$coefficients[2], color = "blue")