-
Notifications
You must be signed in to change notification settings - Fork 0
/
Stringr.R
122 lines (103 loc) · 3.93 KB
/
Stringr.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#Trabajando con pipes y stringr
#Organiza: R-Ladies Cuernavaca
#Ponentes: Mary Jane Rivero Morales y Veronica Jimenez Jacinto
#Fecha: Lunes, 26 de julio de 2021
#----Instalación de paquetes----
# install.packages("tidyverse")
library(tidyverse)
#---- Comillas simples o dobles ----
Cadena1 <- "Cadena de caracteres"
Cadena2 <-'Cuando llegué ella estaba con las maletas.
"Me voy" me dijo'
#----Primeros pasos con stringr----
#NOTA: Paquete stringr: las funciones empiezan por str_
#Creamos un vector llamado frutas
frutas <- c("manzana","pera","fresa","banano")
#str_length(): # de caracteres de una cadena
str_length(frutas)
#str_to_upper(): caracteres en mayuscula
str_to_upper(frutas)
#str_to_title():primer caracter mayuscula y otros minuscula
str_to_title(frutas)
#str_to_lower(): caracteres en minuscula
str_to_lower(frutas)
#str_sub(): Para extraer partes de una cadena.
str_sub(frutas,1,3)
#str_replace
str_replace(frutas,"pera","mango")
#Ordenar alfabeticamente
str_sort(frutas, locale = "es")
#----Ejemplo base de datos----
#Lectura de datos
datos <- read.csv("netflix_titles.csv")
#Tienes observaciones faltantes
datos <- read.csv("netflix_titles.csv", na.strings = "")
#Contando los NA
table(is.na(datos))
#Eliminamos las filas que tengan NA
datos <- datos[stats::complete.cases(datos),]
#Numero de caracteres de la variable country
datos$caracteres<- str_length(datos$country)
#Escribir en mayuscula
datos$type <- str_to_upper(datos$type)
#Escribir como titulo
datos$type <- str_to_title(datos$type)
#Combinar las funciones str_sub y str_to_upper
datos$Inicial <- str_to_upper(str_sub(datos$type, 1, 1))
#str_replace
datos$type <- str_replace(datos$type,"TV Show","Show")
#ordenar alfabeticamente
datos$date_added <- str_sort(datos$date_added, locale = "es")
#---- Segunda parte primeros pasos ----
#Uso de la funcion str_detect(): sirve Para determinar si un vector
#de caracteres coincide con un patron de busqueda
str_detect(frutas ,"a")
str_detect(frutas ,"r")
#---- Ejemplo base de datos ----
#Pipe ctrl+shif+m
#Filtrar las peliculas mexicanas
minidatos <- datos%>%
filter(str_detect(datos$country,"Mexico"))
View(minidatos)
#Peliculas que se grabaron unicamente en Mexico
#^ palabras comunes que empiezan por m
#$ palabras comunes que terminan en o
minidatos <- datos%>%
filter(str_detect(datos$country,"^Mexico$"))
View(minidatos)
#Filtrado mas amplio
minidatos_paises <- datos%>%
filter(str_detect(datos$country,c("^Mexico$","^Brazil$","^United States$",
"^India$", "^Italy$", "^Germany$","^Russia$","^Japon$",
"^Canada$","^Turkey$","^Egypt$", "^France$","^South Korea$",
"^United Kingdom$", "^Spain$")) & type == "Movie")
#Observando la estructura de los datos
str(minidatos_paises)
#Convertir la variable de la base de datos a factor
minidatos_paises$country <- factor(minidatos_paises$country)
#Observar los niveles de la variable pais
levels(minidatos_paises$country)
#Contar observaciones por pais
minidatos_paises %>% count(country)
#---- Graficando los datos----
ggplot(minidatos_paises, aes(country,fill=country))+
geom_bar()+
labs(title="Peliculas por pais", x= "Paises",y="Numero de peliculas")+
theme_minimal()
#Plotly
library(plotly)
ggplotly(ggplot(minidatos_paises, aes(country,fill=country))+
geom_bar()+
labs(title="Peliculas por pais", x= "Paises",y="Numero de peliculas")+
theme_minimal())
#Uso de la funcion str_c(): combinemos cadenas
descripcion<-minidatos_paises$description
View(minidatos_paises)
intro<- "The movie is about"
hola<-str_c(
intro," ", descripcion
)
hola
minidatos_paises$columnaNueva <- str_c(minidatos_paises$country,
minidatos_paises$release_year, sep=" ")
#Fuente: R para ciencia de datos de Hadley Wickham y Garrett Grolemund