<- 5 + 3
s s
[1] 8
R es un lenguaje de programación y entorno de desarrollo utilizado principalmente para análisis estadístico y visualización de datos. Es una herramienta poderosa y versátil que ha ganado popularidad en la comunidad de ciencia de datos y estadísticas debido a su flexibilidad y amplia variedad de paquetes y librerías.
R Studio es un entorno de desarrollo integrado (IDE) diseñado específicamente para trabajar con R. Proporciona una interfaz de usuario amigable que facilita la escritura de código, la gestión de proyectos y la generación de informes reproducibles.
En conjunto, R y RStudio son herramientas esenciales para cualquier persona que trabaje en análisis de datos, estadísticas, ciencia de datos o programación. Te permiten cargar datos, realizar análisis estadísticos complejos, crear gráficos impresionantes y compartir tus resultados de manera efectiva.
Una variable es un nombre que hace referencia a un valor. Una de las características más poderosas de un lenguaje de programación es la capacidad de manipular variables. Una variable es el nombre de una ubicación de memoria reservada que contiene algún valor.
Por ejemplo:
x <- 10
Aquí, ‘x’ es el nombre de la variable, <- es un operador de asignación y 10 es el valor o literal.
Entonces, al usar el operador de asignación <- en R, podemos reservar memoria para el valor sin declararlo explícitamente.
El nombre de una variable debe comenzar con una letra o un punto (.) seguido de una letra; no puede comenzar con un número.
Puede contener letras (AZ, az), números (0-9) y puntos (.) como caracteres válidos en un nombre de variable en R.
En R, los nombres de variables son sensibles a las mayúsculas y minúsculas. Esto significa que R distingue entre letras mayúsculas y minúsculas en los nombres de las variables.
Para nombres de variables de varias palabras, se suelen usar guiones bajos (nombre_variable) o puntos (nombre.variable). Sin embargo, algunos usuarios prefieren utilizar “CamelCase” o “PascalCase” (por ejemplo, nombreVariable) para nombres de variables en lugar de guiones bajos.
✋ Precaución: Es importante evitar usar los nombres de funciones integradas de R para nombrar tus variables, ya que esto podría causar conflictos en el código.
Los operadores aritméticos son esenciales para realizar operaciones matemáticas como suma, resta, multiplicación, división, entre otras. A continuación, se presenta una lista de los operadores aritméticos en R:
+
(suma): Se utiliza para sumar dos valores.-
(resta): Resta el valor del lado derecho del valor del lado izquierdo.*
(multiplicación): Multiplica dos valores./
(división): Divide el valor del lado izquierdo por el valor del lado derecho.^
(exponenciación): Eleva el valor del lado izquierdo a la potencia del valor del lado derecho.%%
(módulo): Devuelve el residuo de la división del valor del lado izquierdo por el valor del lado derecho.%/%
(división entera): Devuelve el cociente de la división del valor del lado izquierdo por el valor del lado derecho, eliminando cualquier parte decimal.\[ \begin{array}{|c|c|c|c|} \hline \text { Nombre del operador } & \text { Símbolo del operador } & \text { Descripción } & \text { Ejemplo } \\ \hline \text { suma } & + & \text { Suma los dos operandos } & a+b \\ \hline \text { resta } & - & \text { Resta los operandos derechos del operando izquierdo } & a b \\ \hline \text { multiplicación } & \text { * } & \text { Multiplica los dos operandos } & a^* b \\ \hline \text { división o división flotante } & \text { / } & \begin{array}{l} \text { El operando izquierdo se divide por el operando } \\ \text { derecho y da como resultado el valor flotante } \end{array} & a / b \\ \hline \text { división de piso } & / / & \begin{array}{l} \text { El operando izquierdo se divide por el operando } \\ \text { derecho y da como resultado el valor mínimo de } \\ \text { división } \end{array} & \mathrm{a} / / \mathrm{b} \\ \hline \text { exponente } & * * & \text { Elevó el operando izquierdo a la potencia del derecho. } & \begin{array}{l} a^{* *} b \quad\left(3^{* *} 2 \text { significa } 3\right. \\ \text { elevado a } 2) \end{array} \\ \hline \text { módulos } & \% & \begin{array}{l} \text { Da el resto de la división del operando izquierdo por el } \\ \text { operando derecho } \end{array} & a \% b \\ \hline \end{array} \]
Puedes realizar operaciones aritméticas en R utilizando nombres de variables abreviados para mayor concisión:
Los operadores relacionales se utilizan para evaluar la relación entre operandos y comparar los valores. Estos operadores devuelven como resultado “Verdadero” o “Falso” según la condición evaluada. A continuación, se presentan los operadores relacionales en R:
\[ \begin{array}{|c|c|c|c|} \hline \text { Nombre del operador } & \text { Símbolo del operador } & \text { Descripción } & \text { Ejemplo } \\ \hline \text { igual a } & == & \begin{array}{l} \text { comparar si el valor del operando izquierdo es igual al } \\ \text { valor del operando derecho } \end{array} & a==b \\ \hline \text { no igual a o diferente } & != & \begin{array}{l} \text { comparar si el valor del operando izquierdo no es igual } \\ \text { al valor del operando derecho } \end{array} & a !=b \\ \hline \text { menor que } & < & \begin{array}{l} \text { comparar si el valor del operando izquierdo es menor } \\ \text { que el valor del operando derecho } \end{array} & a<b \\ \hline \text { mayor que } & > & \begin{array}{l} \text { comparar si el valor del operando izquierdo es mayor } \\ \text { que el valor del operando derecho } \end{array} & a>b \\ \hline \text { Menor que o igual a } & <= & \begin{array}{l} \text { comparar el valor del operando izquierdo es menor o } \\ \text { igual que el valor del operando derecho } \end{array} & a<=b \\ \hline \text { Mayor qué o igual a } & >= & \begin{array}{l} \text { comparar el valor del operando izquierdo es mayor o } \\ \text { igual que el valor del operando derecho } \end{array} & a>=b \\ \hline \end{array} \]
Ejemplo de Operadores Relacionales en R
A continuación se presenta un ejemplo de cómo utilizar operadores relacionales en R:
[1] TRUE
[1] "no es igual a la relación => (a != b) es:"
[1] "relación menor que => (a < b) es:"
[1] "relación menor o igual que => (a <= b) es:"
En R, para asignar un valor a una variable, utilizamos el operador de asignación <-
. A continuación, se muestra el operador de asignación en R:
<-
(asignación): Utilizado para asignar un valor a una variable.Por ejemplo:
\[ \begin{array}{|c|c|c|c|} \hline \text { Nombre del operador } & \text { Símbolo del operador } & \text { Descripción } & \text { Ejemplo } \\ \hline \text { Asignar } & = & \begin{array}{l} \text { Asignar el valor del operando derecho al operando } \\ \text { izquierdo } \end{array} & a=b \\ \hline \text { Sumar y asignar } & += & \begin{array}{l} \text { Suma el valor del operando derecho al izquierdo y } \\ \text { asigna el resultado al operando izquierdo } \end{array} & a+=10 \ (a=a+10) \\ \hline \text { Restar y asignar } & -= & \begin{array}{l} \text { Reste el valor del operando derecho al izquierdo y } \\ \text { asigne el resultado al operando izquierdo } \end{array} & a-=10 \ (a=a-10) \\ \hline \text { Multiplicar y asignar } & { }^*= & \begin{array}{l} \text { Multiplica el valor del operando derecho por el } \\ \text { izquierdo y asigna el resultado al operando izquierdo. } \end{array} & a^*=10 \left(a=a^* 5\right) \\ \hline \text { Dividir y asignar } & /= & \begin{array}{l} \text { Divida el valor del operando derecho a la izquierda y } \\ \text { asigne el resultado al operando izquierdo } \end{array} & a /=2 \ (a=a / 2) \\ \hline \begin{array}{l} \text { División y asignación del } \\ \text { piso } \end{array} & / /= & \begin{array}{l} \text { Piso divide el valor del operando derecho a la izquierda } \\ \text { y asigna el resultado al operando izquierdo } \end{array} & a / /=9 \ (a=a / / 9) \\ \hline \text { Módulo y asignación } & \%= & \begin{array}{l} \text { Realice el módulo por el valor del operando derecho a la } \\ \text { izquierda y asigne el resultado al operando izquierdo } \end{array} & a \%=3 \ (a=a \% 3) \\ \hline \text { Exponente y asignación } & * * & \begin{array}{l} \text { Realizar el exponente de operandos y asignar el } \\ \text { resultado al operando izquierdo. } \end{array} & a^{\star \star *}=2\left(a=a^{\star \star 2} 2\right) \\ \hline \end{array} \]
Asignar (a <- 20) => 20
Asignar (b <- 25) => 25
Sumar y asignar (a <- a + 10) => 30
Restar y asignar (a <- a - 10) => 20
Multiplicar y asignar (a <- a * 10) => 200
Dividir y asignar (a <- a / 10) => 20
# Piso-Dividir y asignar (%/%=)
b <- b %/% 3
cat("Piso-Dividir y asignar (b <- b %/% 3) => ", b, "\n")
Piso-Dividir y asignar (b <- b %/% 3) => 8
Módulo y asignar (b <- b %% 3) => 2
Exponenciación y asignar (b <- b^3) => 8
En R, al igual que en Python, se utilizan operadores lógicos para combinar expresiones condicionales. Los operadores lógicos se utilizan para realizar operaciones de lógica booleana y evaluar si las condiciones son verdaderas o falsas.
A continuación, se presenta una tabla con información sobre los operadores lógicos en R:
\[ \begin{array}{|l|c|l|} \hline {\text { Nombre del operador }} & \text { Símbolo del operador } & {\text { Descripción }} \\ \hline \text { AND (y) lógico } & \text{and} & \begin{array}{l} \text { Da como resultado 'True' si ambos operandos son 'Verdadero' y } \\ \text { 'False' en caso contrario. } \end{array} \\ \hline \text { OR (O) lógico } & \text{or} & \begin{array}{l} \text { Da "True" como resultado si alguno de los operandos es } \\ \text { "Verdadero" y "False" en caso contrario. } \end{array} \\ \hline \text { NOT (No) lógico } & \text{not} & \begin{array}{l} \text { Da como resultado 'True' si un operando es 'Falso' y 'True' si } \\ \text { un operando es 'Verdadero'. } \end{array} \\ \hline \end{array} \]
AND lógico => a y b es: FALSE
OR lógico => a o b es: TRUE
NO lógico => no b es: FALSE
# Ejemplo de tipo de datos int
a <- 20 # valor entero positivo
a1 <- -20 # Valor entero negativo
# Imprimiendo el valor
cat("a = ", a, "\n")
a = 20
a1 = -20
El tipo de variable a es: numeric
El tipo de variable a1 es: numeric
# Ejemplo para tipo de datos flotante
b <- 20.5 # valor flotante positivo
b1 <- -20.5 # Valor flotante negativo
# Imprimiendo el valor
cat("b = ", b, "\n")
b = 20.5
b1 = -20.5
El tipo de variable b es: numeric
El tipo de variable b1 es: numeric
# Ejemplo de datos complejos
a <- 20 + 5i
b <- 5i
c <- 10 - 5i
d <- -5i
# Imprimiendo el valor de a
cat("a = ", a, "\n")
a = 20+5i
El tipo de variable a es: complex
El tipo de variable b es: complex
El tipo de variable c es: complex
El tipo de variable d es: complex
En R, puedes realizar la conversión de tipos de datos, como convertir de integer a numeric o de numeric a integer, utilizando las funciones as.integer()
y as.numeric()
respectivamente.
Puedes verificar el tipo de cualquier variable en R usando la función class()
.
También puedes convertir un numeric o integer a character utilizando la función as.character()
, o convertir cualquier cadena numérica a numeric o integer utilizando las funciones as.numeric()
y as.integer()
respectivamente.
Las cadenas son secuencias de caracteres encerradas entre comillas simples o dobles. Se utilizan comillas simples (’’) o dobles (““) para escribir una cadena de una sola línea en R. Por ejemplo:
# Ejemplos de Codificación en R
# Definir las cadenas
cadena1 <- 'Esta es una cadena entre comillas simples'
cadena2 <- "Esta es una cadena entre comillas dobles"
cadena3 <- '
Línea uno
Línea dos
Línea tres' # cadena multilínea
# Mostrar resultados
cat("cadena1:\n", cadena1, "\n")
cadena1:
Esta es una cadena entre comillas simples
cadena2:
Esta es una cadena entre comillas dobles
cadena3 (cadena multilínea):
Línea uno
Línea dos
Línea tres
En R, al igual que en Python, puedes acceder a componentes individuales de una cadena utilizando la indexación. La indexación en R comienza desde 1 (a diferencia de Python, que comienza desde 0).
Por ejemplo, si tienes una cadena en R:
[1] "Esto es un ejemplo de cómo usar substr en R."
Primer carácter: E
# Obtener los primeros 10 caracteres
p10 <- substr(txt, 1, 10)
cat("Primeros 10 caracteres:", p10, "\n")
Primeros 10 caracteres: Esto es un
# Obtener del carácter 6 al 15
c6_a_15 <- substr(txt, 6, 15)
cat("Caracteres del 6 al 15:", c6_a_15, "\n")
Caracteres del 6 al 15: es un ejem
# Obtener los últimos 5 caracteres
u5 <- substr(txt, nchar(txt) - 4, nchar(txt))
cat("Últimos 5 caracteres:", u5, "\n")
Últimos 5 caracteres: en R.
c1 <- "Hola, "
c2 <- "mundo!"
# Concatenación de cadenas
res <- paste(c1, c2)
# Imprimir el resultado
cat("Concatenación:", res, "\n")
Concatenación: Hola, mundo!
En este ejemplo, las variables c1 y c2 contienen las cadenas que deseas concatenar. Luego, utilizamos la función paste() para concatenar estas cadenas y almacenamos el resultado en la variable res. Finalmente, imprimimos el resultado utilizando cat()
En Python para realizar diversas operaciones con cadenas. La sintaxis básica es str.String_method(). Algunos de los métodos de cadena más importantes se detallan a continuación:
upper(): En R, puedes usar toupper(cadena) para convertir una cadena a mayúsculas.
lower(): En R, puedes usar tolower(cadena) para convertir una cadena a minúsculas.
capitalize(): En R, puedes usar tools::toTitleCase(cadena) para capitalizar la primera letra de una cadena.
split(): En R, puedes usar strsplit(cadena, separador) para dividir una cadena según un separador y obtener una lista de elementos.
strip(): No hay un equivalente directo en R para eliminar espacios en blanco iniciales y finales de una cadena. Sin embargo, puedes usar trimws(cadena) para eliminar espacios en blanco iniciales y finales.
rstrip(): No hay un equivalente directo en R para eliminar caracteres del lado derecho de una cadena. Puedes usar stringr::str_trim(cadena, side = “right”) para eliminar espacios en blanco del lado derecho.
lstrip(): No hay un equivalente directo en R para eliminar caracteres del lado izquierdo de una cadena. Puedes usar stringr::str_trim(cadena, side = “left”) para eliminar espacios en blanco del lado izquierdo.
len(): En R, puedes usar nchar(cadena) para obtener la longitud de una cadena.
replace(): En R, puedes usar gsub(subcadena_a_reemplazar, nueva_subcadena, cadena) para reemplazar una subcadena en una cadena.
startswith(): No hay un equivalente directo en R. Puedes usar grepl(“^subcadena”, cadena) para verificar si una cadena comienza con una subcadena.
endswith(): No hay un equivalente directo en R. Puedes usar grepl(“subcadena$”, cadena) para verificar si una cadena termina con una subcadena.
isdigit(): No hay un equivalente directo en R. Puedes usar grepl(“1+$”, cadena) para verificar si todos los caracteres de la cadena son dígitos.
isdecimal(): No hay un equivalente directo en R. Puedes usar grepl(“2+$”, cadena) para verificar si todos los caracteres de la cadena son decimales.
isalpha(): No hay un equivalente directo en R. Puedes usar grepl(“3+$”, cadena) para verificar si todos los caracteres de la cadena son letras del alfabeto.
islower(): No hay un equivalente directo en R. Puedes usar grepl(“4+$”, cadena) para verificar si la cadena está en minúsculas.
isupper(): No hay un equivalente directo en R. Puedes usar grepl(“5+$”, cadena) para verificar si la cadena está en mayúsculas.
isalnum(): No hay un equivalente directo en R. Puedes usar grepl(“6+$”, cadena) para verificar si todos los caracteres de la cadena son alfanuméricos.
Estos son los equivalentes aproximados en R para las operaciones de cadena que mencionaste en Python. Puedes utilizar estas funciones en R según tus necesidades específicas.
Ejemplos :
# Convertir una cadena a mayúsculas en R.
cadena <- "hola mundo"
mayusculas <- toupper(cadena)
print(mayusculas)
[1] "HOLA MUNDO"
# Convertir una cadena a minúsculas en R.
cadena <- "Hola Mundo"
minusculas <- tolower(cadena)
print(minusculas)
[1] "hola mundo"
# Capitalizar la primera letra de una cadena en R.
cadena <- "esto es un ejemplo"
capitalizada <- tools::toTitleCase(cadena)
print(capitalizada)
[1] "Esto Es Un Ejemplo"
# Dividir una cadena según un separador en R.
cadena <- "manzana,pera,naranja"
elementos <- unlist(strsplit(cadena, ","))
print(elementos)
[1] "manzana" "pera" "naranja"
[1] "manzana" "pera" "naranja"
[1] "hola mundo"
# Eliminar espacios en blanco del lado derecho o izquierdo de una cadena en R.
cadena <- " hola mundo "
sin_espacios_derecha <- stringr::str_trim(cadena, side = "right")
sin_espacios_izquierda <- stringr::str_trim(cadena, side = "left")
print(sin_espacios_derecha)
[1] " hola mundo"
[1] "hola mundo "
# Obtener la longitud de una cadena en R.
cadena <- "hola"
longitud <- nchar(cadena)
print(longitud)
[1] 4
# Reemplazar una subcadena en una cadena en R.
cadena <- "hola mundo"
nueva_cadena <- gsub("mundo", "amigo", cadena)
print(nueva_cadena)
[1] "hola amigo"
# Verificar si una cadena comienza con una subcadena en R.
cadena <- "Hola Mundo"
comienza_con_hola <- grepl("^Hola", cadena)
print(comienza_con_hola)
[1] TRUE
# Verificar si una cadena termina con una subcadena en R.
cadena <- "Hola Mundo"
termina_con_mundo <- grepl("Mundo$", cadena)
print(termina_con_mundo)
[1] TRUE
# Verificar si todos los caracteres de la cadena son dígitos en R.
cadena <- "12345"
son_digitos <- grepl("^[0-9]+$", cadena)
print(son_digitos)
[1] TRUE
# Verificar si todos los caracteres de la cadena son decimales en R.
cadena <- "123.45"
son_decimales <- grepl("^[0-9.]+$", cadena)
print(son_decimales)
[1] TRUE
# Verificar si todos los caracteres de la cadena son letras del alfabeto en R.
cadena <- "Hola"
son_letras <- grepl("^[A-Za-z]+$", cadena)
print(son_letras)
[1] TRUE
# Verificar si la cadena está en minúsculas en R.
cadena <- "hola mundo"
es_minuscula <- grepl("^[a-z]+$", cadena)
print(es_minuscula)
[1] FALSE
# Verificar si la cadena está en mayúsculas en R.
cadena <- "HOLA MUNDO"
es_mayuscula <- grepl("^[A-Z]+$", cadena)
print(es_mayuscula)
[1] FALSE
# Verificar si todos los caracteres de la cadena son alfanuméricos en R
cadena <- "Hola123"
es_alfanumerico <- grepl("^[A-Za-z0-9]+$", cadena)
print(es_alfanumerico)
[1] TRUE
texto <- "¡QUE RÁPIDO PASA EL TIEMPO!
De verdad no puedo creer que apenas unos instantes atrás estaba viajando en ese ya lejano 9 de enero de Guadalajara, México, a Lima, Perú.
Han pasado 5 mesesotes donde he tenido el gusto, orgullo y honor de formar parte del Tour 1 y 2 DPC SA, Lima Major, Dreamleague S19 y Berlin Major. Creo que no tenía un año tan activo desde el 2017 lol.
Muchísimas gracias a ESB - Electronic Sports Broadcasting y 4D Esports por permitirme seguir formando parte de esta hermosa escena en los distintos eventos que han transcurrido en el año; el poder trabajar en distintos momentos y proyectos para ambas productoras me llena de orgullo y alegría. Sigan siendo cracks, cada quien a su modo tan único de transmitir y traer el Dota 2 a los fans.
Quiero aclarar que mis comentarios sobre el pago pendiente de la Lima Major que hice en stream eran en total plan de joda, de meme y chacota. Pero en retrospectiva me salió muy bajita la broma y pido disculpas públicas por las molestias causadas de mi parte a los afectados.
Avo+ NO ME DEBE NADA A MI DE FORMA PERSONAL.
NO ME DEBE N A D A.
YA DEJEN DE JODERLO, POR FAVOOOOOR XD
Ya estoy en conversaciones para recibir la remuneración y de nuevo lo repito, Avo no tiene nada que ver con ese pago, solo quería molestarlo porque en su momento él fue mi contacto principal para trabajar en el stream en inglés de la Lima Major, pero obviamente ustedes no tenían ese contexto, así que mi pésimo chiste se salió de control. (ptm hasta dije GAH para hacer notar que no era enserio pero no fue suficiente :'u)
Vive y aprende, lol.
Eso sería todo por ahora, si aún no me despiden de ESB, entonces nos vemos muy muy pronto para cerrar el Tour 3 SA DPC y la Bali Major de cara al TI 2023.
Por último, quiero de verdad agradecer a todos y cada uno de los que siempre están apoyando y mandando la buena vibra en los streams. No saben lo mucho que significa para mí que a pesar de los años y mis pifias e inconsistencias todavía haya gente bella y hermosa que manda su apoyo y energía positiva a mi persona. GRACIAS GRACIAS GRACIAS 🙏
Todos los días intento darles la mejor versión posible de mí en stream. A veces se logra, a veces no JAJA, pero aprecio mucho a todos los que se toman un poco de su valioso tiempo para seguir apoyando el sueño de este viejo y loco mexicano que ama el Dota tanto como lo aman en este precioso país ❤️
¡Cuídense mucho locos, nos vemos pronto!
ATTE. CARLOS \"THE AZATHOTH\" RIOS, MEJOR CONOCIDO EN EL BAJO MUNDO COMO Sarcasmo Gamer KTMRE K BA PASAR
(por si no lo captaron, eso último es broma XDDD)"
# Aplicar funciones de cadena
mayusculas <- toupper(texto)
mayusculas
[1] "¡QUE RÁPIDO PASA EL TIEMPO!\nDE VERDAD NO PUEDO CREER QUE APENAS UNOS INSTANTES ATRÁS ESTABA VIAJANDO EN ESE YA LEJANO 9 DE ENERO DE GUADALAJARA, MÉXICO, A LIMA, PERÚ.\nHAN PASADO 5 MESESOTES DONDE HE TENIDO EL GUSTO, ORGULLO Y HONOR DE FORMAR PARTE DEL TOUR 1 Y 2 DPC SA, LIMA MAJOR, DREAMLEAGUE S19 Y BERLIN MAJOR. CREO QUE NO TENÍA UN AÑO TAN ACTIVO DESDE EL 2017 LOL.\nMUCHÍSIMAS GRACIAS A ESB - ELECTRONIC SPORTS BROADCASTING Y 4D ESPORTS POR PERMITIRME SEGUIR FORMANDO PARTE DE ESTA HERMOSA ESCENA EN LOS DISTINTOS EVENTOS QUE HAN TRANSCURRIDO EN EL AÑO; EL PODER TRABAJAR EN DISTINTOS MOMENTOS Y PROYECTOS PARA AMBAS PRODUCTORAS ME LLENA DE ORGULLO Y ALEGRÍA. SIGAN SIENDO CRACKS, CADA QUIEN A SU MODO TAN ÚNICO DE TRANSMITIR Y TRAER EL DOTA 2 A LOS FANS. \nQUIERO ACLARAR QUE MIS COMENTARIOS SOBRE EL PAGO PENDIENTE DE LA LIMA MAJOR QUE HICE EN STREAM ERAN EN TOTAL PLAN DE JODA, DE MEME Y CHACOTA. PERO EN RETROSPECTIVA ME SALIÓ MUY BAJITA LA BROMA Y PIDO DISCULPAS PÚBLICAS POR LAS MOLESTIAS CAUSADAS DE MI PARTE A LOS AFECTADOS. \nAVO+ NO ME DEBE NADA A MI DE FORMA PERSONAL.\nNO ME DEBE N A D A.\nYA DEJEN DE JODERLO, POR FAVOOOOOR XD\nYA ESTOY EN CONVERSACIONES PARA RECIBIR LA REMUNERACIÓN Y DE NUEVO LO REPITO, AVO NO TIENE NADA QUE VER CON ESE PAGO, SOLO QUERÍA MOLESTARLO PORQUE EN SU MOMENTO ÉL FUE MI CONTACTO PRINCIPAL PARA TRABAJAR EN EL STREAM EN INGLÉS DE LA LIMA MAJOR, PERO OBVIAMENTE USTEDES NO TENÍAN ESE CONTEXTO, ASÍ QUE MI PÉSIMO CHISTE SE SALIÓ DE CONTROL. (PTM HASTA DIJE GAH PARA HACER NOTAR QUE NO ERA ENSERIO PERO NO FUE SUFICIENTE :'U)\nVIVE Y APRENDE, LOL.\nESO SERÍA TODO POR AHORA, SI AÚN NO ME DESPIDEN DE ESB, ENTONCES NOS VEMOS MUY MUY PRONTO PARA CERRAR EL TOUR 3 SA DPC Y LA BALI MAJOR DE CARA AL TI 2023.\nPOR ÚLTIMO, QUIERO DE VERDAD AGRADECER A TODOS Y CADA UNO DE LOS QUE SIEMPRE ESTÁN APOYANDO Y MANDANDO LA BUENA VIBRA EN LOS STREAMS. NO SABEN LO MUCHO QUE SIGNIFICA PARA MÍ QUE A PESAR DE LOS AÑOS Y MIS PIFIAS E INCONSISTENCIAS TODAVÍA HAYA GENTE BELLA Y HERMOSA QUE MANDA SU APOYO Y ENERGÍA POSITIVA A MI PERSONA. GRACIAS GRACIAS GRACIAS 👕\nTODOS LOS DÍAS INTENTO DARLES LA MEJOR VERSIÓN POSIBLE DE MÍ EN STREAM. A VECES SE LOGRA, A VECES NO JAJA, PERO APRECIO MUCHO A TODOS LOS QUE SE TOMAN UN POCO DE SU VALIOSO TIEMPO PARA SEGUIR APOYANDO EL SUEÑO DE ESTE VIEJO Y LOCO MEXICANO QUE AMA EL DOTA TANTO COMO LO AMAN EN ESTE PRECIOSO PAÍS ❤️\n¡CUÍDENSE MUCHO LOCOS, NOS VEMOS PRONTO!\nATTE. CARLOS \"THE AZATHOTH\" RIOS, MEJOR CONOCIDO EN EL BAJO MUNDO COMO SARCASMO GAMER KTMRE K BA PASAR\n(POR SI NO LO CAPTARON, ESO ÚLTIMO ES BROMA XDDD)"
[1] "¡que rápido pasa el tiempo!\nde verdad no puedo creer que apenas unos instantes atrás estaba viajando en ese ya lejano 9 de enero de guadalajara, méxico, a lima, perú.\nhan pasado 5 mesesotes donde he tenido el gusto, orgullo y honor de formar parte del tour 1 y 2 dpc sa, lima major, dreamleague s19 y berlin major. creo que no tenía un año tan activo desde el 2017 lol.\nmuchísimas gracias a esb - electronic sports broadcasting y 4d esports por permitirme seguir formando parte de esta hermosa escena en los distintos eventos que han transcurrido en el año; el poder trabajar en distintos momentos y proyectos para ambas productoras me llena de orgullo y alegría. sigan siendo cracks, cada quien a su modo tan único de transmitir y traer el dota 2 a los fans. \nquiero aclarar que mis comentarios sobre el pago pendiente de la lima major que hice en stream eran en total plan de joda, de meme y chacota. pero en retrospectiva me salió muy bajita la broma y pido disculpas públicas por las molestias causadas de mi parte a los afectados. \navo+ no me debe nada a mi de forma personal.\nno me debe n a d a.\nya dejen de joderlo, por favooooor xd\nya estoy en conversaciones para recibir la remuneración y de nuevo lo repito, avo no tiene nada que ver con ese pago, solo quería molestarlo porque en su momento él fue mi contacto principal para trabajar en el stream en inglés de la lima major, pero obviamente ustedes no tenían ese contexto, así que mi pésimo chiste se salió de control. (ptm hasta dije gah para hacer notar que no era enserio pero no fue suficiente :'u)\nvive y aprende, lol.\neso sería todo por ahora, si aún no me despiden de esb, entonces nos vemos muy muy pronto para cerrar el tour 3 sa dpc y la bali major de cara al ti 2023.\npor último, quiero de verdad agradecer a todos y cada uno de los que siempre están apoyando y mandando la buena vibra en los streams. no saben lo mucho que significa para mí que a pesar de los años y mis pifias e inconsistencias todavía haya gente bella y hermosa que manda su apoyo y energía positiva a mi persona. gracias gracias gracias 👕\ntodos los días intento darles la mejor versión posible de mí en stream. a veces se logra, a veces no jaja, pero aprecio mucho a todos los que se toman un poco de su valioso tiempo para seguir apoyando el sueño de este viejo y loco mexicano que ama el dota tanto como lo aman en este precioso país ❤️\n¡cuídense mucho locos, nos vemos pronto!\natte. carlos \"the azathoth\" rios, mejor conocido en el bajo mundo como sarcasmo gamer ktmre k ba pasar\n(por si no lo captaron, eso último es broma xddd)"
[1] "¡que RÁPIDO PASA EL TIEMPO!\nDe Verdad No Puedo Creer Que Apenas Unos Instantes Atrás Estaba Viajando en Ese Ya Lejano 9 De Enero De Guadalajara, México, a Lima, Perú.\nHan Pasado 5 Mesesotes Donde He Tenido El Gusto, Orgullo y Honor De Formar Parte Del Tour 1 y 2 DPC SA, Lima Major, Dreamleague S19 y Berlin Major. Creo Que No Tenía Un Año Tan Activo Desde El 2017 Lol.\nMuchísimas Gracias a ESB - Electronic Sports Broadcasting y 4d Esports Por Permitirme Seguir Formando Parte De Esta Hermosa Escena en Los Distintos Eventos Que Han Transcurrido en El Año; El Poder Trabajar en Distintos Momentos y Proyectos Para Ambas Productoras Me Llena De Orgullo y Alegría. Sigan Siendo Cracks, Cada Quien a Su Modo Tan Único De Transmitir y Traer El Dota 2 a Los Fans. \nQuiero Aclarar Que Mis Comentarios Sobre El Pago Pendiente De La Lima Major Que Hice en Stream Eran en Total Plan De Joda, De Meme y Chacota. Pero en Retrospectiva Me Salió Muy Bajita La Broma y Pido Disculpas Públicas Por Las Molestias Causadas De Mi Parte a Los Afectados. \nAvo+ NO ME DEBE NADA a MI DE FORMA PERSONAL.\nNO ME DEBE N a D A.\nYA DEJEN DE JODERLO, POR FAVOOOOOR XD\nYa Estoy en Conversaciones Para Recibir La Remuneración y De Nuevo Lo Repito, Avo No Tiene Nada Que Ver Con Ese Pago, Solo Quería Molestarlo Porque en Su Momento Él Fue Mi Contacto Principal Para Trabajar en El Stream en Inglés De La Lima Major, Pero Obviamente Ustedes No Tenían Ese Contexto, Así Que Mi Pésimo Chiste Se Salió De Control. (Ptm Hasta Dije GAH Para Hacer Notar Que No Era Enserio Pero No Fue Suficiente :'u)\nVive y Aprende, Lol.\nEso Sería Todo Por Ahora, Si Aún No Me Despiden De ESB, Entonces Nos Vemos Muy Muy Pronto Para Cerrar El Tour 3 SA DPC y La Bali Major De Cara Al TI 2023.\nPor Último, Quiero De Verdad Agradecer a Todos y Cada Uno De Los Que Siempre Están Apoyando y Mandando La Buena Vibra en Los Streams. No Saben Lo Mucho Que Significa Para Mí Que a Pesar De Los Años y Mis Pifias e Inconsistencias Todavía Haya Gente Bella y Hermosa Que Manda Su Apoyo y Energía Positiva a Mi Persona. GRACIAS GRACIAS GRACIAS 🙏\nTodos Los Días Intento Darles La Mejor Versión Posible De Mí en Stream. a Veces Se Logra, a Veces No JAJA, Pero Aprecio Mucho a Todos Los Que Se Toman Un Poco De Su Valioso Tiempo Para Seguir Apoyando El Sueño De Este Viejo y Loco Mexicano Que Ama El Dota Tanto Como Lo Aman en Este Precioso País ❤️\n¡cuídense Mucho Locos, Nos Vemos Pronto!\nATTE. CARLOS \"THE AZATHOTH\" RIOS, MEJOR CONOCIDO en EL BAJO MUNDO COMO Sarcasmo Gamer KTMRE K BA PASAR\n(Por Si No Lo Captaron, Eso Último Es Broma XDDD)"
[[1]]
[1] "¡QUE" "RÁPIDO" "PASA"
[4] "EL" "TIEMPO!\nDe" "verdad"
[7] "no" "puedo" "creer"
[10] "que" "apenas" "unos"
[13] "instantes" "atrás" "estaba"
[16] "viajando" "en" "ese"
[19] "ya" "lejano" "9"
[22] "de" "enero" "de"
[25] "Guadalajara," "México," "a"
[28] "Lima," "Perú.\nHan" "pasado"
[31] "5" "mesesotes" "donde"
[34] "he" "tenido" "el"
[37] "gusto," "orgullo" "y"
[40] "honor" "de" "formar"
[43] "parte" "del" "Tour"
[46] "1" "y" "2"
[49] "DPC" "SA," "Lima"
[52] "Major," "Dreamleague" "S19"
[55] "y" "Berlin" "Major."
[58] "Creo" "que" "no"
[61] "tenía" "un" "año"
[64] "tan" "activo" "desde"
[67] "el" "2017" "lol.\nMuchísimas"
[70] "gracias" "a" "ESB"
[73] "-" "Electronic" "Sports"
[76] "Broadcasting" "y" "4D"
[79] "Esports" "por" "permitirme"
[82] "seguir" "formando" "parte"
[85] "de" "esta" "hermosa"
[88] "escena" "en" "los"
[91] "distintos" "eventos" "que"
[94] "han" "transcurrido" "en"
[97] "el" "año;" "el"
[100] "poder" "trabajar" "en"
[103] "distintos" "momentos" "y"
[106] "proyectos" "para" "ambas"
[109] "productoras" "me" "llena"
[112] "de" "orgullo" "y"
[115] "alegría." "Sigan" "siendo"
[118] "cracks," "cada" "quien"
[121] "a" "su" "modo"
[124] "tan" "único" "de"
[127] "transmitir" "y" "traer"
[130] "el" "Dota" "2"
[133] "a" "los" "fans."
[136] "\nQuiero" "aclarar" "que"
[139] "mis" "comentarios" "sobre"
[142] "el" "pago" "pendiente"
[145] "de" "la" "Lima"
[148] "Major" "que" "hice"
[151] "en" "stream" "eran"
[154] "en" "total" "plan"
[157] "de" "joda," "de"
[160] "meme" "y" "chacota."
[163] "Pero" "en" "retrospectiva"
[166] "me" "salió" "muy"
[169] "bajita" "la" "broma"
[172] "y" "pido" "disculpas"
[175] "públicas" "por" "las"
[178] "molestias" "causadas" "de"
[181] "mi" "parte" "a"
[184] "los" "afectados." "\nAvo+"
[187] "NO" "ME" "DEBE"
[190] "NADA" "A" "MI"
[193] "DE" "FORMA" "PERSONAL.\nNO"
[196] "ME" "DEBE" "N"
[199] "A" "D" "A.\nYA"
[202] "DEJEN" "DE" "JODERLO,"
[205] "POR" "FAVOOOOOR" "XD\nYa"
[208] "estoy" "en" "conversaciones"
[211] "para" "recibir" "la"
[214] "remuneración" "y" "de"
[217] "nuevo" "lo" "repito,"
[220] "Avo" "no" "tiene"
[223] "nada" "que" "ver"
[226] "con" "ese" "pago,"
[229] "solo" "quería" "molestarlo"
[232] "porque" "en" "su"
[235] "momento" "él" "fue"
[238] "mi" "contacto" "principal"
[241] "para" "trabajar" "en"
[244] "el" "stream" "en"
[247] "inglés" "de" "la"
[250] "Lima" "Major," "pero"
[253] "obviamente" "ustedes" "no"
[256] "tenían" "ese" "contexto,"
[259] "así" "que" "mi"
[262] "pésimo" "chiste" "se"
[265] "salió" "de" "control."
[268] "(ptm" "hasta" "dije"
[271] "GAH" "para" "hacer"
[274] "notar" "que" "no"
[277] "era" "enserio" "pero"
[280] "no" "fue" "suficiente"
[283] ":'u)\nVive" "y" "aprende,"
[286] "lol.\nEso" "sería" "todo"
[289] "por" "ahora," "si"
[292] "aún" "no" "me"
[295] "despiden" "de" "ESB,"
[298] "entonces" "nos" "vemos"
[301] "muy" "muy" "pronto"
[304] "para" "cerrar" "el"
[307] "Tour" "3" "SA"
[310] "DPC" "y" "la"
[313] "Bali" "Major" "de"
[316] "cara" "al" "TI"
[319] "2023.\nPor" "último," "quiero"
[322] "de" "verdad" "agradecer"
[325] "a" "todos" "y"
[328] "cada" "uno" "de"
[331] "los" "que" "siempre"
[334] "están" "apoyando" "y"
[337] "mandando" "la" "buena"
[340] "vibra" "en" "los"
[343] "streams." "No" "saben"
[346] "lo" "mucho" "que"
[349] "significa" "para" "mí"
[352] "que" "a" "pesar"
[355] "de" "los" "años"
[358] "y" "mis" "pifias"
[361] "e" "inconsistencias" "todavía"
[364] "haya" "gente" "bella"
[367] "y" "hermosa" "que"
[370] "manda" "su" "apoyo"
[373] "y" "energía" "positiva"
[376] "a" "mi" "persona."
[379] "GRACIAS" "GRACIAS" "GRACIAS"
[382] "🙏\nTodos" "los" "días"
[385] "intento" "darles" "la"
[388] "mejor" "versión" "posible"
[391] "de" "mí" "en"
[394] "stream." "A" "veces"
[397] "se" "logra," "a"
[400] "veces" "no" "JAJA,"
[403] "pero" "aprecio" "mucho"
[406] "a" "todos" "los"
[409] "que" "se" "toman"
[412] "un" "poco" "de"
[415] "su" "valioso" "tiempo"
[418] "para" "seguir" "apoyando"
[421] "el" "sueño" "de"
[424] "este" "viejo" "y"
[427] "loco" "mexicano" "que"
[430] "ama" "el" "Dota"
[433] "tanto" "como" "lo"
[436] "aman" "en" "este"
[439] "precioso" "país" "❤️\n¡Cuídense"
[442] "mucho" "locos," "nos"
[445] "vemos" "pronto!\nATTE." "CARLOS"
[448] "\"THE" "AZATHOTH\"" "RIOS,"
[451] "MEJOR" "CONOCIDO" "EN"
[454] "EL" "BAJO" "MUNDO"
[457] "COMO" "Sarcasmo" "Gamer"
[460] "KTMRE" "K" "BA"
[463] "PASAR\n(por" "si" "no"
[466] "lo" "captaron," "eso"
[469] "último" "es" "broma"
[472] "XDDD)"
[1] "¡QUERÁPIDOPASAELTIEMPO!\nDeverdadnopuedocreerqueapenasunosinstantesatrásestabaviajandoeneseyalejano9deenerodeGuadalajara,México,aLima,Perú.\nHanpasado5mesesotesdondehetenidoelgusto,orgulloyhonordeformarpartedelTour1y2DPCSA,LimaMajor,DreamleagueS19yBerlinMajor.Creoquenoteníaunañotanactivodesdeel2017lol.\nMuchísimasgraciasaESB-ElectronicSportsBroadcastingy4DEsportsporpermitirmeseguirformandopartedeestahermosaescenaenlosdistintoseventosquehantranscurridoenelaño;elpodertrabajarendistintosmomentosyproyectosparaambasproductorasmellenadeorgulloyalegría.Sigansiendocracks,cadaquienasumodotanúnicodetransmitirytraerelDota2alosfans.\nQuieroaclararquemiscomentariossobreelpagopendientedelaLimaMajorquehiceenstreameranentotalplandejoda,dememeychacota.Peroenretrospectivamesaliómuybajitalabromaypidodisculpaspúblicasporlasmolestiascausadasdemipartealosafectados.\nAvo+NOMEDEBENADAAMIDEFORMAPERSONAL.\nNOMEDEBENADA.\nYADEJENDEJODERLO,PORFAVOOOOORXD\nYaestoyenconversacionespararecibirlaremuneraciónydenuevolorepito,Avonotienenadaqueverconesepago,soloqueríamolestarloporqueensumomentoélfuemicontactoprincipalparatrabajarenelstreameninglésdelaLimaMajor,peroobviamenteustedesnoteníanesecontexto,asíquemipésimochistesesaliódecontrol.(ptmhastadijeGAHparahacernotarquenoeraenserioperonofuesuficiente:'u)\nViveyaprende,lol.\nEsoseríatodoporahora,siaúnnomedespidendeESB,entoncesnosvemosmuymuyprontoparacerrarelTour3SADPCylaBaliMajordecaraalTI2023.\nPorúltimo,quierodeverdadagradeceratodosycadaunodelosquesiempreestánapoyandoymandandolabuenavibraenlosstreams.Nosabenlomuchoquesignificaparamíqueapesardelosañosymispifiaseinconsistenciastodavíahayagentebellayhermosaquemandasuapoyoyenergíapositivaamipersona.GRACIASGRACIASGRACIAS🙏\nTodoslosdíasintentodarleslamejorversiónposibledemíenstream.Avecesselogra,avecesnoJAJA,peroapreciomuchoatodoslosquesetomanunpocodesuvaliosotiempoparaseguirapoyandoelsueñodeesteviejoylocomexicanoqueamaelDotatantocomoloamanenestepreciosopaís❤️\n¡Cuídensemucholocos,nosvemospronto!\nATTE.CARLOS\"THEAZATHOTH\"RIOS,MEJORCONOCIDOENELBAJOMUNDOCOMOSarcasmoGamerKTMREKBAPASAR\n(porsinolocaptaron,esoúltimoesbromaXDDD)"
[1] 2575
En R, al igual que en Python, las listas son una estructura de datos que admite la indexación, comenzando desde 1 en lugar de 0 como en Python. También se puede acceder a los elementos de una lista utilizando índices negativos, donde -1 se refiere al último elemento de la lista, -2 al penúltimo y así sucesivamente.
Para acceder a un elemento específico de una lista en R, simplemente proporciona el índice del elemento entre corchetes, como se muestra a continuación:
# Crear una lista
mi_lista <- list("manzana", "banana", "cereza", "dátiles")
# Acceder al primer elemento
primer_elemento <- mi_lista[1]
print(primer_elemento) # Imprime "manzana"
[[1]]
[1] "manzana"
# Acceder a varios elementos
elementos_seleccionados <- mi_lista[c(2, 4)]
print(elementos_seleccionados) # Imprime "banana" y "dátiles"
[[1]]
[1] "banana"
[[2]]
[1] "dátiles"
# Acceder al último elemento
ultimo_elemento <- mi_lista[-length(mi_lista)]
print(ultimo_elemento) # Imprime "dátiles"
[[1]]
[1] "manzana"
[[2]]
[1] "banana"
[[3]]
[1] "cereza"
En R, puedes agregar elementos a una lista utilizando varias funciones y técnicas. A continuación, se muestran algunas de las formas más comunes de hacerlo.
c()
La forma más sencilla de agregar elementos a una lista en R es utilizando la función c()
, que combina elementos en un nuevo vector o lista. Puedes usar esta función para agregar uno o más elementos al final de una lista existente. Aquí hay un ejemplo:
En R, puedes agregar elementos a una lista utilizando varias funciones y técnicas. A continuación, se muestran algunas de las formas más comunes de hacerlo.
c()
La forma más sencilla de agregar elementos a una lista en R es utilizando la función c()
, que combina elementos en un nuevo vector o lista. Puedes usar esta función para agregar uno o más elementos al final de una lista existente. Aquí hay un ejemplo:
# Crear una lista inicial
mi_lista <- list("manzana", "banana", "cereza")
# Agregar un elemento al final de la lista
mi_lista <- c(mi_lista, "dátiles")
print(mi_lista) # Imprime la lista actualizada
Ejemplo:
En R, puedes actualizar elementos específicos en una lista utilizando la indexación. A continuación, te mostraré cómo hacerlo.
Para actualizar un elemento en una lista, simplemente utiliza la indexación para acceder al elemento que deseas cambiar y asigna un nuevo valor a ese elemento. Aquí tienes un ejemplo:
# Crear una lista inicial
mi_lista <- list("manzana", "banana", "cereza")
# Actualizar el segundo elemento de la lista
mi_lista[2] <- "naranja"
print(mi_lista) # Imprime la lista actualizada
[[1]]
[1] "manzana"
[[2]]
[1] "naranja"
[[3]]
[1] "cereza"
Ejemplo:
En R, puedes eliminar elementos específicos de una lista utilizando diferentes métodos. A continuación, te mostraré cómo hacerlo.
Una forma común de eliminar elementos de una lista es utilizando la indexación negativa. Esto significa que indicas qué elementos deseas conservar en lugar de los que deseas eliminar. Aquí tienes un ejemplo:
# Crear una lista inicial
mi_lista <- list("manzana", "banana", "cereza")
# Eliminar el segundo elemento de la lista usando indexación negativa
mi_lista <- mi_lista[-2]
print(mi_lista) # Imprime la lista actualizada
[[1]]
[1] "manzana"
[[2]]
[1] "cereza"
Ejemplo:
En R, puedes verificar si un elemento está presente en una lista utilizando la función %in%
o el operador %in%
. Esto te permite comprobar si un valor específico existe en la lista o no.
%in%
La función %in%
es útil para comprobar si un valor está presente en una lista y devuelve un valor lógico (TRUE
o FALSE
). Aquí tienes un ejemplo:
# Crear una lista
mi_lista <- list("manzana", "banana", "cereza")
# Verificar si "banana" está en la lista
esta_presente <- "banana" %in% mi_lista
print(esta_presente) # Imprime TRUE si está presente, FALSE si no lo está
[1] TRUE
Ejemplo: Usar el operador %in%
En R, puedes obtener la longitud de una lista utilizando la función length()
y contar cuántas veces aparece un elemento en una lista usando la función sum()
en combinación con sapply()
.
Para obtener la longitud de una lista en R, puedes utilizar la función length()
. Aquí tienes un ejemplo:
# Crear una lista
mi_lista <- list("manzana", "banana", "cereza")
# Obtener la longitud de la lista
longitud <- length(mi_lista)
print(longitud) # Imprime la longitud de la lista
[1] 3
Contar la aparición de un elemento en una lista
En R, puedes realizar cortes o divisiones en una lista utilizando la notación de corchetes []
. Esto te permite obtener un subconjunto de una lista o una porción de una lista basada en la indexación.
# Crear una lista
mi_lista <- list("manzana", "banana", "cereza", "naranja", "uva")
# Obtener un subconjunto de la lista desde el índice 2 hasta el índice 4
sub_lista <- mi_lista[2:4]
print(sub_lista)
[[1]]
[1] "banana"
[[2]]
[1] "cereza"
[[3]]
[1] "naranja"
# Obtener los primeros 3 elementos de la lista
primeros_elementos <- mi_lista[1:3]
print(primeros_elementos)
[[1]]
[1] "manzana"
[[2]]
[1] "banana"
[[3]]
[1] "cereza"
[[1]]
[1] "uva"
En R y RStudio, es posible gestionar tuplas mediante el uso de listas o vectores con nombres. A diferencia de varios otros lenguajes de programación, R no cuenta con un tipo de dato de tupla dedicado, pero se pueden crear estructuras de datos que se asemejen a tuplas mediante el empleo de listas o vectores con etiquetas descriptivas.
# Crear una "tupla" usando una lista
mi_tupla <- list(nombre = "Juan", edad = 30, ciudad = "Huaraz")
mi_tupla
$nombre
[1] "Juan"
$edad
[1] 30
$ciudad
[1] "Huaraz"
[1] "Juan"
[1] 30
[1] "Huaraz"
# Crear una "tupla" usando un vector con nombres
mi_tupla <- c(nombre = "Juan", edad = 30, ciudad = "Huaraz")
mi_tupla
nombre edad ciudad
"Juan" "30" "Huaraz"
# Acceder a elementos de la "tupla"
nombre <- mi_tupla["nombre"]
edad <- mi_tupla["edad"]
ciudad <- mi_tupla["ciudad"]
# Imprimir los valores
cat("Nombre:", nombre, "\n")
Nombre: Juan
Edad: 30
Ciudad: Huaraz
En R, no existe un tipo de dato llamado “diccionario” como se encuentra en otros lenguajes de programación como Python. Sin embargo, puedes lograr estructuras de datos similares a los diccionarios utilizando listas o vectores con nombres. Estos objetos se pueden usar para almacenar pares clave-valor, lo que es una característica común de los diccionarios.
De esta manera, puedes simular la funcionalidad de un diccionario en R utilizando listas o vectores con nombres. Estos objetos son muy versátiles y te permiten almacenar y acceder a datos de manera eficiente.
Sin embargo, puedes lograr una funcionalidad similar a la de un diccionario utilizando listas o vectores con nombres, como se mencionó anteriormente.
Aunque las listas y vectores con nombres en R pueden usarse para almacenar pares clave-valor como lo harías en un diccionario, existen diferencias en la forma en que se accede a los elementos y se realizan operaciones en comparación con los diccionarios de otros lenguajes.
Si deseas una estructura de datos más cercana a un diccionario con características específicas de diccionario, puedes considerar el paquete listenv
, que proporciona una implementación de diccionario en R.
Para usar el paquete listenv
, primero debes instalarlo si aún no lo has hecho:
Luego, puedes crear un diccionario utilizando esta biblioteca:
Warning: package 'listenv' was built under R version 4.2.3
Con listenv
, puedes acceder a los valores y realizar operaciones similares a las que harías con un diccionario en otros lenguajes de programación.
Por ejemplo:
# Crear un diccionario usando listenv
mi_diccionario <- listenv(
nombre = "Juan",
edad = 30,
ciudad = "Ejemploville"
)
# Acceder a valores del diccionario
nombre <- mi_diccionario$nombre
edad <- mi_diccionario$edad
ciudad <- mi_diccionario$ciudad
# Modificar un valor en el diccionario
mi_diccionario$edad <- 31
# Agregar un nuevo par clave-valor al diccionario
mi_diccionario$telefono <- "123-456-7890"
# Eliminar una clave-valor del diccionario
mi_diccionario$ciudad <- NULL
# Imprimir valores
cat("Nombre:", nombre, "\n")
Nombre: Juan
Edad: 30
Ciudad: Ejemploville
## Nube de palabras
Warning: package 'tm' was built under R version 4.2.3
Loading required package: NLP
Warning: package 'SnowballC' was built under R version 4.2.3
Warning: package 'wordcloud' was built under R version 4.2.3
#DISCURSO DE NO VIOLENCIA DE GANDHI
#Que palabras hay con mayor frecuencia en el discurso de Gandhi?
#nuestro texto lo guardamos en bloc de notas en formato txt
texto <- readLines("C:/Users/wilde/Downloads/01.txt")
Warning in readLines("C:/Users/wilde/Downloads/01.txt"): incomplete final line
found on 'C:/Users/wilde/Downloads/01.txt'
texto = iconv(texto, to="ASCII//TRANSLIT")
texto = Corpus(VectorSource(texto))
########### LIMPIAMOS NUESTRO TEXTO CON EL COMANDO tm_map
#ponemos todos los datos a minuscula (A!=a)
discurso=tm_map(texto, tolower)
Warning in tm_map.SimpleCorpus(texto, tolower): transformation drops documents
Warning in tm_map.SimpleCorpus(discurso, stripWhitespace): transformation drops
documents
Warning in tm_map.SimpleCorpus(discurso, removePunctuation): transformation
drops documents
Warning in tm_map.SimpleCorpus(discurso, removeNumbers): transformation drops
documents
[1] "de" "la" "que" "el" "en"
[6] "y" "a" "los" "del" "se"
[11] "las" "por" "un" "para" "con"
[16] "no" "una" "su" "al" "lo"
[21] "como" "más" "pero" "sus" "le"
[26] "ya" "o" "este" "sí" "porque"
[31] "esta" "entre" "cuando" "muy" "sin"
[36] "sobre" "también" "me" "hasta" "hay"
[41] "donde" "quien" "desde" "todo" "nos"
[46] "durante" "todos" "uno" "les" "ni"
[51] "contra" "otros" "ese" "eso" "ante"
[56] "ellos" "e" "esto" "mí" "antes"
[61] "algunos" "qué" "unos" "yo" "otro"
[66] "otras" "otra" "él" "tanto" "esa"
[71] "estos" "mucho" "quienes" "nada" "muchos"
[76] "cual" "poco" "ella" "estar" "estas"
[81] "algunas" "algo" "nosotros" "mi" "mis"
[86] "tú" "te" "ti" "tu" "tus"
[91] "ellas" "nosotras" "vosotros" "vosotras" "os"
[96] "mío" "mía" "míos" "mías" "tuyo"
[101] "tuya" "tuyos" "tuyas" "suyo" "suya"
[106] "suyos" "suyas" "nuestro" "nuestra" "nuestros"
[111] "nuestras" "vuestro" "vuestra" "vuestros" "vuestras"
[116] "esos" "esas" "estoy" "estás" "está"
[121] "estamos" "estáis" "están" "esté" "estés"
[126] "estemos" "estéis" "estén" "estaré" "estarás"
[131] "estará" "estaremos" "estaréis" "estarán" "estaría"
[136] "estarías" "estaríamos" "estaríais" "estarían" "estaba"
[141] "estabas" "estábamos" "estabais" "estaban" "estuve"
[146] "estuviste" "estuvo" "estuvimos" "estuvisteis" "estuvieron"
[151] "estuviera" "estuvieras" "estuviéramos" "estuvierais" "estuvieran"
[156] "estuviese" "estuvieses" "estuviésemos" "estuvieseis" "estuviesen"
[161] "estando" "estado" "estada" "estados" "estadas"
[166] "estad" "he" "has" "ha" "hemos"
[171] "habéis" "han" "haya" "hayas" "hayamos"
[176] "hayáis" "hayan" "habré" "habrás" "habrá"
[181] "habremos" "habréis" "habrán" "habría" "habrías"
[186] "habríamos" "habríais" "habrían" "había" "habías"
[191] "habíamos" "habíais" "habían" "hube" "hubiste"
[196] "hubo" "hubimos" "hubisteis" "hubieron" "hubiera"
[201] "hubieras" "hubiéramos" "hubierais" "hubieran" "hubiese"
[206] "hubieses" "hubiésemos" "hubieseis" "hubiesen" "habiendo"
[211] "habido" "habida" "habidos" "habidas" "soy"
[216] "eres" "es" "somos" "sois" "son"
[221] "sea" "seas" "seamos" "seáis" "sean"
[226] "seré" "serás" "será" "seremos" "seréis"
[231] "serán" "sería" "serías" "seríamos" "seríais"
[236] "serían" "era" "eras" "éramos" "erais"
[241] "eran" "fui" "fuiste" "fue" "fuimos"
[246] "fuisteis" "fueron" "fuera" "fueras" "fuéramos"
[251] "fuerais" "fueran" "fuese" "fueses" "fuésemos"
[256] "fueseis" "fuesen" "siendo" "sido" "tengo"
[261] "tienes" "tiene" "tenemos" "tenéis" "tienen"
[266] "tenga" "tengas" "tengamos" "tengáis" "tengan"
[271] "tendré" "tendrás" "tendrá" "tendremos" "tendréis"
[276] "tendrán" "tendría" "tendrías" "tendríamos" "tendríais"
[281] "tendrían" "tenía" "tenías" "teníamos" "teníais"
[286] "tenían" "tuve" "tuviste" "tuvo" "tuvimos"
[291] "tuvisteis" "tuvieron" "tuviera" "tuvieras" "tuviéramos"
[296] "tuvierais" "tuvieran" "tuviese" "tuvieses" "tuviésemos"
[301] "tuvieseis" "tuviesen" "teniendo" "tenido" "tenida"
[306] "tenidos" "tenidas" "tened"
Warning in tm_map.SimpleCorpus(discurso, removeWords, stopwords("spanish")):
transformation drops documents
#tambien podemos tener nuestra propia lista de palabras a quitar
############### DATA FRAME DE PALABRAS CON SU FRECUENCIA
#Creamos matriz de letras
letras= TermDocumentMatrix(discurso)
findFreqTerms(letras, lowfreq=5)
[1] "datos" "sistema" "trabajo" "simbolo"
matrix=as.matrix(letras)
#lo ordenamos y sumamos las letras de nuestra matriz
vector <- sort(rowSums(matrix),decreasing=TRUE)
#creamos la data con las palabras y su frecuencia
dataletras <- data.frame(word= names(vector),frequencia=vector)
# lo nombra y le da formato de data.frame
################ GRAFICAMOS FRECUENCIA DE LAS PALABRAS
barplot(dataletras[1:10,]$freq, las = 2, names.arg = dataletras[1:10,]$word,
col ="blue", main ="PALABRAS M?S FRECUENTES", ylab = "Frecuencia de palabras")
############ GRAFICAMOS LA NUBE DE PALABRAS
wordcloud(words = dataletras$word, freq = dataletras$freq, min.freq = 2,
max.words=70)
#en el centro la palabra mas importante,
wordcloud(words = dataletras$word, freq = dataletras$freq, min.freq = 2,
max.words=70, random.order=FALSE, rot.per=0.2,
colors=brewer.pal(8, "Dark2"))