En la programación en R, existen dos sabores de programación muy distintos: R - tidy y R - base.
La principal característica de R - tidy es el uso de la pipa y la concatenación %>% , mientras que la principal característica de R - base es el uso de los corchetes [ y ].
Con ambos estilos se puede llegar a obtener los mismos resultados, sin embargo, estos estilos tienen distintas ventajas y desventajas.
Ventajas:
Es la forma original de escribir código de R.
Hay mucho material (de antes de 2012) disponible para aprender a programar en R bajo este estilo, y si contratas un curso en línea es MUY seguro que este sea el estilo que te enseñen.
Es más rápido que R - tidy (en caso de que te importe la velocidad). (Ejemplos donde si nos importa la velocidad: https://lnppmicrositio.shinyapps.io/redCaminosShiny/)
Aprenderlo nos ayudará a entender mejor como programar en R, al ser más versátil que los verbos.
Hay algunas cosas que son más fáciles de escribir en este estilo.
Desventajas:
Es complicado de escribir (hay que usar muchos paréntesis).
Es menos legíble que R - tidy (los corchetes son menos entendibles que los verbos).
La curva de aprendizaje es más elevada, por lo que puede desalentar a los estudiantes nuevos.
Ventajas:
Es muy legible, y fácil de entender.
Tiene una curva de aprendizaje muy rápida.
La escritura de código se facilita al poder concatenar (pipear) nuestos comandos.
Cuenta con el uso de verbos que facilitan la lectura de lo que estamos programando.
Es la manera moderna de aprender R, y los materiales de referencia se están escribiendo en este estilo.
Filosofía de programación congruente con múltiples librerías de R (como ggplot2, stringr, purrr, etc).
Tiene a la pipa %>% :3.
Desventajas:
Es algo lento (en comparación con el R - base).
Muchas personas (que ya trabajaban cómodas con R-Base) apenas estan aprendiendo a utilizarlo.
PREGUNTA: Cuál estilo/sabor recomiendo?
R: Ambos son muy buenos.
PREGUNTA: Cuál utilizo yo?
R: Ambos.
Es por esto que hay que estar preparados para cualquier situación que se atraviese en temas de programación en R.
Formulario rapido:
Si x es un vector (un vector de texto, lógico, numérico o factor categórico), x[1] seleccionará el elemento 1 del vector x.
Si x es un objeto tabular (un dataframe, tibble o matrix), se utiliza una coma dentro de los corchetes. Lo que se coloque a la izquierda de la coma seleccionará las filas de x, mientras que lo que se coloque a la derecha de la coma seleccionará las columnas de x.
\[x[filas,columnas]\]
Subsetting
Sea x un objeto dataframe, tibble o matrix, entonces:
x[1,] seleccionará la fila numero 1;
x[,1] seleccionara la columna numero 1;
x[-1,] removerá la fila numero 1;
x[,-c(1,3,5,7)] removerá las columnas numero 1, 3, 5 y 7;
Creación de nuevas variables
Sea x un objeto dataframe o tibble entonces:
x$nombre_variable seleccionará la variable llamada nombre_variable del objeto x.
x$nueva_columna <- c(1,2,3,4,5) creará una nueva columna dentro de x, cuyo nombre será nueva_columna y que contendrá los valores del 1 al 5 sí y sólo sí la columna x tiene 5 renglones de tamaño.
x[,c("Nombre", "Apellido")] seleccionará las columnas llamadas exactamente “Nombre” o “Apellido”.
Filtrado
Sea y un vector lógico (es decir, que toma valores TRUE o FALSE) el cual se le pasa a un objeto x, dataframe, tibble o matrix, entonces la tabla se filtrará, quedando aquellos renglones o columnas en los que el objeto y sea TRUE y se eliminarán los renglones o columnas en donde el objeto y sea FALSE.
Eso significa que:
Si el objeto x es un vector de tamaño 5, entonces
`x[c(TRUE, TRUE, FALSE, TRUE, FALSE)]`seleccionará los elementos 1, 2 y 4.
Ejemplo práctico:
data("mtcars")
# Renglones que cumplen la condicion que se expresa aca abajo
vector_logico <- mtcars$hp > 100
# Solo nos quedamos con los renglones donde los hp sean mayores a 100
mtcars[vector_logico,]
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
# Ahora, quedemonos con los renglones de los carros que tienen exactamente 8 cilindros
vector_logico <- mtcars$cyl == 8
mtcars[vector_logico,]
## mpg cyl disp hp drat wt qsec vs am gear carb
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
# En un solo paso
mtcars[mtcars$cyl == 8,]
## mpg cyl disp hp drat wt qsec vs am gear carb
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
# Doble filtro, ahora quedemonos con los que tienen exactamente 8 cilindros y mas de 250 hp
mtcars[mtcars$cyl == 8 & mtcars$hp > 250,]
## mpg cyl disp hp drat wt qsec vs am gear carb
## Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
## Maserati Bora 15.0 8 301 335 3.54 3.57 14.6 0 1 5 8
Reordenamiento
Sea x un vector cuyos elementos tienen un orden que va de 1 hasta n, y deseamos cambiar el orden de sus elementos, entonces introducimos dentro de los corchetes un vector numérico que seleccione el orden y los elementos que deseamos, por ejemplo:
x[c(7,2,3,1,7),] seleccionará las filas numero 7, 2, 3, 1 y 7 nuevamente.
Si deseamos que el vector se ordene de manera ascendente, descendente o por orden alfabético [A-Z], entonces utilizamos la función sort().
Sea x un vector numérico, entonces:
sort(x) ordenará los elementos de manera ascendente (menor a mayor).
sort(x, decreasing = TRUE) ordenará los elementos de manera descendente (mayor a menor).
Sea x un vector de texto, entonces:
sort(x) ordenará los elementos de la A a la Z.
sort(x, decreasing = TRUE) ordenará los elementos de la Z a la A.
Para practicar, vamos a hacer un ejemplo práctico.
Para el ejemplo práctico de hoy, vamos a llevar a cabo las manipulaciones básicas que vimos el semestre pasado.
# Librerias
library(readxl)
library(tidyverse)
# Abrimos la base
bd <- read_xlsx("tweetsParasite.xlsx")
Manipulación de base de datos.
screen_name
source
text
display_text_width
created_at
# En tidy
bd <- bd %>%
select(screen_name, source, text, display_text_width, created_at)
# En r-base
bd[,c("screen_name", "source", "text", "display_text_width", "created_at")]
## # A tibble: 12,322 x 5
## screen_name source text display_text_wi… created_at
## <chr> <chr> <chr> <dbl> <dttm>
## 1 SimkinHugo Twitter… Aprovechando… 74 2020-02-10 23:59:29
## 2 elcomercio_… TweetDe… BTS celebra … 77 2020-02-10 23:54:29
## 3 elcomercio_… TweetDe… "Oscar 2020:… 93 2020-02-08 08:00:00
## 4 elcomercio_… TweetDe… #Oscar2020: … 105 2020-02-10 20:17:01
## 5 elcomercio_… TweetDe… "Oscar 2020:… 93 2020-02-08 00:20:00
## 6 elcomercio_… TweetDe… "“Parasite”:… 152 2020-02-10 17:12:00
## 7 elcomercio_… TweetDe… #Oscars2020:… 103 2020-02-10 20:07:51
## 8 elcomercio_… TweetDe… "Moon Jae-in… 120 2020-02-10 17:59:39
## 9 elcomercio_… TweetDe… “Parasite” e… 117 2020-02-09 14:03:12
## 10 elcomercio_… TweetDe… "¡Y el Oscar… 135 2020-02-10 03:31:47
## # … with 12,312 more rows
Ojo con las comillas!
# En tidy
bd %>%
head(501)
## # A tibble: 501 x 5
## screen_name source text display_text_wi… created_at
## <chr> <chr> <chr> <dbl> <dttm>
## 1 SimkinHugo Twitter… Aprovechando… 74 2020-02-10 23:59:29
## 2 elcomercio_… TweetDe… BTS celebra … 77 2020-02-10 23:54:29
## 3 elcomercio_… TweetDe… "Oscar 2020:… 93 2020-02-08 08:00:00
## 4 elcomercio_… TweetDe… #Oscar2020: … 105 2020-02-10 20:17:01
## 5 elcomercio_… TweetDe… "Oscar 2020:… 93 2020-02-08 00:20:00
## 6 elcomercio_… TweetDe… "“Parasite”:… 152 2020-02-10 17:12:00
## 7 elcomercio_… TweetDe… #Oscars2020:… 103 2020-02-10 20:07:51
## 8 elcomercio_… TweetDe… "Moon Jae-in… 120 2020-02-10 17:59:39
## 9 elcomercio_… TweetDe… “Parasite” e… 117 2020-02-09 14:03:12
## 10 elcomercio_… TweetDe… "¡Y el Oscar… 135 2020-02-10 03:31:47
## # … with 491 more rows
# En rbase
bd[1:501,]
## # A tibble: 501 x 5
## screen_name source text display_text_wi… created_at
## <chr> <chr> <chr> <dbl> <dttm>
## 1 SimkinHugo Twitter… Aprovechando… 74 2020-02-10 23:59:29
## 2 elcomercio_… TweetDe… BTS celebra … 77 2020-02-10 23:54:29
## 3 elcomercio_… TweetDe… "Oscar 2020:… 93 2020-02-08 08:00:00
## 4 elcomercio_… TweetDe… #Oscar2020: … 105 2020-02-10 20:17:01
## 5 elcomercio_… TweetDe… "Oscar 2020:… 93 2020-02-08 00:20:00
## 6 elcomercio_… TweetDe… "“Parasite”:… 152 2020-02-10 17:12:00
## 7 elcomercio_… TweetDe… #Oscars2020:… 103 2020-02-10 20:07:51
## 8 elcomercio_… TweetDe… "Moon Jae-in… 120 2020-02-10 17:59:39
## 9 elcomercio_… TweetDe… “Parasite” e… 117 2020-02-09 14:03:12
## 10 elcomercio_… TweetDe… "¡Y el Oscar… 135 2020-02-10 03:31:47
## # … with 491 more rows
# En tidy
bd %>%
slice(c(1,3,5,7,12001))
## # A tibble: 5 x 5
## screen_name source text display_text_wi… created_at
## <chr> <chr> <chr> <dbl> <dttm>
## 1 SimkinHugo Twitter… Aprovechando … 74 2020-02-10 23:59:29
## 2 elcomercio_… TweetDe… "Oscar 2020: … 93 2020-02-08 08:00:00
## 3 elcomercio_… TweetDe… "Oscar 2020: … 93 2020-02-08 00:20:00
## 4 elcomercio_… TweetDe… #Oscars2020: … 103 2020-02-10 20:07:51
## 5 Lokkocs Twitter… "Mejor Pelícu… 254 2020-02-09 06:13:47
# En rbase
bd[c(1,3,5,7,12001),]
## # A tibble: 5 x 5
## screen_name source text display_text_wi… created_at
## <chr> <chr> <chr> <dbl> <dttm>
## 1 SimkinHugo Twitter… Aprovechando … 74 2020-02-10 23:59:29
## 2 elcomercio_… TweetDe… "Oscar 2020: … 93 2020-02-08 08:00:00
## 3 elcomercio_… TweetDe… "Oscar 2020: … 93 2020-02-08 00:20:00
## 4 elcomercio_… TweetDe… #Oscars2020: … 103 2020-02-10 20:07:51
## 5 Lokkocs Twitter… "Mejor Pelícu… 254 2020-02-09 06:13:47
screen_name y text.# En tidy
bd %>%
filter(display_text_width <= 25) %>%
select(screen_name, text)
## # A tibble: 35 x 2
## screen_name text
## <chr> <chr>
## 1 ohmaigachi GANÓ OTRO OSCAR PARASITE
## 2 TodosMenosMil PARASITE ganó el oscar https://t.co/3nGIr048NB
## 3 HaHamann94 Parasite ganó el Oscar https://t.co/zly6r8gERA
## 4 NutellaBipolar Parasite se llevó 4 Óscar
## 5 ParkHyunSik9 Parasite 4 oscar yassss
## 6 131ult PARASITE OSCAR PERIOD
## 7 _shxxni131 YAY PARASITE OSCAR
## 8 Henky_HS Parasite keren, Oscar cuy
## 9 BeibyVacaParada Cuelgue #Parasite #Oscar https://t.co/UhGx0qwH95
## 10 sandrinhabr97 "MERECIDO\n#Oscar\n#Parasite https://t.co/pwRCMUP9So"
## # … with 25 more rows
# En base
vectorLogico <- bd$display_text_width <= 25
bd[vectorLogico, c("screen_name", "text")]
## # A tibble: 35 x 2
## screen_name text
## <chr> <chr>
## 1 ohmaigachi GANÓ OTRO OSCAR PARASITE
## 2 TodosMenosMil PARASITE ganó el oscar https://t.co/3nGIr048NB
## 3 HaHamann94 Parasite ganó el Oscar https://t.co/zly6r8gERA
## 4 NutellaBipolar Parasite se llevó 4 Óscar
## 5 ParkHyunSik9 Parasite 4 oscar yassss
## 6 131ult PARASITE OSCAR PERIOD
## 7 _shxxni131 YAY PARASITE OSCAR
## 8 Henky_HS Parasite keren, Oscar cuy
## 9 BeibyVacaParada Cuelgue #Parasite #Oscar https://t.co/UhGx0qwH95
## 10 sandrinhabr97 "MERECIDO\n#Oscar\n#Parasite https://t.co/pwRCMUP9So"
## # … with 25 more rows
tamanio) que nos diga si el tweet es chico (menor a 50 caracteres) o grande (mayor a 100 caracteres).# En tidy
bd %>%
mutate(tamanio = ifelse(display_text_width >= 100,
"Grande",
"Pequenio"))
## # A tibble: 12,322 x 6
## screen_name source text display_text_wi… created_at tamanio
## <chr> <chr> <chr> <dbl> <dttm> <chr>
## 1 SimkinHugo Twitt… Aprove… 74 2020-02-10 23:59:29 Pequen…
## 2 elcomercio_… Tweet… BTS ce… 77 2020-02-10 23:54:29 Pequen…
## 3 elcomercio_… Tweet… "Oscar… 93 2020-02-08 08:00:00 Pequen…
## 4 elcomercio_… Tweet… #Oscar… 105 2020-02-10 20:17:01 Grande
## 5 elcomercio_… Tweet… "Oscar… 93 2020-02-08 00:20:00 Pequen…
## 6 elcomercio_… Tweet… "“Para… 152 2020-02-10 17:12:00 Grande
## 7 elcomercio_… Tweet… #Oscar… 103 2020-02-10 20:07:51 Grande
## 8 elcomercio_… Tweet… "Moon … 120 2020-02-10 17:59:39 Grande
## 9 elcomercio_… Tweet… “Paras… 117 2020-02-09 14:03:12 Grande
## 10 elcomercio_… Tweet… "¡Y el… 135 2020-02-10 03:31:47 Grande
## # … with 12,312 more rows
# En R-base
bd$tamanio <- ifelse(bd$display_text_width >= 100,
"Grande",
"Pequenio")
# En tidy
bd %>%
filter(source == "Twitter for Android")
## # A tibble: 5,337 x 6
## screen_name source text display_text_wi… created_at tamanio
## <chr> <chr> <chr> <dbl> <dttm> <chr>
## 1 SimkinHugo Twitt… Aprove… 74 2020-02-10 23:59:29 Pequen…
## 2 econorodo Twitt… @criti… 43 2020-02-10 23:52:10 Pequen…
## 3 vela_nava2 Twitt… "@AlFi… 104 2020-02-10 23:51:21 Grande
## 4 ahoyarr Twitt… "Nadie… 148 2020-02-10 23:51:07 Grande
## 5 anelnochebu… Twitt… "“Una … 239 2020-02-10 23:47:46 Grande
## 6 venecixalda… Twitt… "La ge… 122 2020-02-10 23:37:11 Grande
## 7 zappoll Twitt… "Lo po… 169 2020-02-10 23:35:11 Grande
## 8 oncereyes Twitt… "Holly… 89 2020-02-10 23:34:15 Pequen…
## 9 mjpedreros_… Twitt… Parasi… 279 2020-02-10 23:32:41 Grande
## 10 RetuitAfter… Twitt… "Por m… 209 2020-02-09 18:11:18 Grande
## # … with 5,327 more rows
# En R-base
bd[bd$source == "Twitter for Android",]
## # A tibble: 5,337 x 6
## screen_name source text display_text_wi… created_at tamanio
## <chr> <chr> <chr> <dbl> <dttm> <chr>
## 1 SimkinHugo Twitt… Aprove… 74 2020-02-10 23:59:29 Pequen…
## 2 econorodo Twitt… @criti… 43 2020-02-10 23:52:10 Pequen…
## 3 vela_nava2 Twitt… "@AlFi… 104 2020-02-10 23:51:21 Grande
## 4 ahoyarr Twitt… "Nadie… 148 2020-02-10 23:51:07 Grande
## 5 anelnochebu… Twitt… "“Una … 239 2020-02-10 23:47:46 Grande
## 6 venecixalda… Twitt… "La ge… 122 2020-02-10 23:37:11 Grande
## 7 zappoll Twitt… "Lo po… 169 2020-02-10 23:35:11 Grande
## 8 oncereyes Twitt… "Holly… 89 2020-02-10 23:34:15 Pequen…
## 9 mjpedreros_… Twitt… Parasi… 279 2020-02-10 23:32:41 Grande
## 10 RetuitAfter… Twitt… "Por m… 209 2020-02-09 18:11:18 Grande
## # … with 5,327 more rows
# Renombrar las variables una por una
names(bd)[1] <- "NombreUsuario"
# Renombrara todas las variables de golpe
names(bd) <- c("NombreUsuario", "fuenteDelTweet",
"Texto", "Tamanio", "Fecha de Creacion",
"clasificacion")
bd
## # A tibble: 12,322 x 6
## NombreUsuario fuenteDelTweet Texto Tamanio `Fecha de Creacion`
## <chr> <chr> <chr> <dbl> <dttm>
## 1 SimkinHugo Twitter for A… Apro… 74 2020-02-10 23:59:29
## 2 elcomercio_p… TweetDeck BTS … 77 2020-02-10 23:54:29
## 3 elcomercio_p… TweetDeck "Osc… 93 2020-02-08 08:00:00
## 4 elcomercio_p… TweetDeck #Osc… 105 2020-02-10 20:17:01
## 5 elcomercio_p… TweetDeck "Osc… 93 2020-02-08 00:20:00
## 6 elcomercio_p… TweetDeck "“Pa… 152 2020-02-10 17:12:00
## 7 elcomercio_p… TweetDeck #Osc… 103 2020-02-10 20:07:51
## 8 elcomercio_p… TweetDeck "Moo… 120 2020-02-10 17:59:39
## 9 elcomercio_p… TweetDeck “Par… 117 2020-02-09 14:03:12
## 10 elcomercio_p… TweetDeck "¡Y … 135 2020-02-10 03:31:47
## # … with 12,312 more rows, and 1 more variable: clasificacion <chr>
# Arrange por tamano (menor a mayor)
bd[order(bd$Tamanio),]
## # A tibble: 12,322 x 6
## NombreUsuario fuenteDelTweet Texto Tamanio `Fecha de Creacion`
## <chr> <chr> <chr> <dbl> <dttm>
## 1 _schuldig_ Twitter for A… Yo p… 17 2020-02-10 01:49:01
## 2 _shxxni131 Twitter for A… YAY … 18 2020-02-10 05:38:27
## 3 131ult Twitter for i… PARA… 21 2020-02-10 05:55:42
## 4 loflrina Twitter for A… 2 os… 21 2020-02-10 03:26:56
## 5 DrunknCowboy Twitter for i… Yay … 21 2020-02-10 03:25:34
## 6 jmkyaebe Twitter for A… Yass… 21 2020-02-10 02:18:54
## 7 ChaoticLeah Twitter for A… PARA… 21 2020-02-10 01:40:27
## 8 TodosMenosMil Twitter for i… PARA… 22 2020-02-10 16:23:16
## 9 HaHamann94 Twitter for i… Para… 22 2020-02-10 13:02:25
## 10 ohminyg Twitter for A… PARA… 22 2020-02-10 03:57:36
## # … with 12,312 more rows, and 1 more variable: clasificacion <chr>
bd[order(bd$Tamanio, decreasing = TRUE),]
## # A tibble: 12,322 x 6
## NombreUsuario fuenteDelTweet Texto Tamanio `Fecha de Creacion`
## <chr> <chr> <chr> <dbl> <dttm>
## 1 RoyalDarjeel… Twitter for i… "Las… 538 2020-02-10 08:51:30
## 2 ondas2075 Twitter for i… Fres… 304 2020-02-10 14:05:14
## 3 ELTIEMPO Twitter Web A… "Hac… 299 2020-02-10 03:39:12
## 4 Holaqut80980… Twitter for A… "#Os… 291 2020-02-10 06:19:05
## 5 DanielRamosQ Twitter Web A… "Mi … 288 2020-02-09 22:59:39
## 6 NEORAM27 Twitter for A… "PAR… 286 2020-02-10 03:30:08
## 7 dreavg Twitter for i… "Las… 286 2020-02-09 20:32:41
## 8 Nico_Ogeda Twitter for A… "Por… 284 2020-02-08 23:15:37
## 9 MaddBCN Twitter for i… La @… 283 2020-02-10 04:35:23
## 10 NymeriaSolo Twitter for A… "Me … 282 2020-02-10 06:27:12
## # … with 12,312 more rows, and 1 more variable: clasificacion <chr>
Nota! group_by() y summarise() mejor ni lo intenten, esta bien complicado.