Primero la Sección de Librerías de Funciones:

# rownames(installed.packages())
Warning message:
R graphics engine version 14 is not supported by this version of RStudio. The Plots tab will be disabled until a newer version of RStudio is installed. 
list.of.packages <- c(
"arm" , 
"broom" , 
"corrplot" , 
"cowplot" , 
"datasets" , 
"datasets" , 
"dplyr" , 
"eeptools" , 
"estimatr" , 
"FinCal" , 
"formatR" , 
"ggfortify" , 
"ggpubr" , 
"haven" , 
"Hmisc" , 
"infer" , 
"knitr" , 
"lmtest" , 
"margins" , 
"nycflights13" , 
"psych" , 
"readxl" , 
"reshape2" , 
"rms" , 
"skimr" , 
"stargazer" , 
"stringr" , 
"survival" , 
"tableone" , 
"tidyr" , 
"tidyverse" , 
"TTR" , 
"wooldridge" , 
"xlsx" 
)

Llamada a LIBRERIAS:

# library(arm) 
# library(broom) 
# library(corrplot) 
# library(cowplot) 
# library(datasets) 
library(dplyr) 

Attaching package: 㤼㸱dplyr㤼㸲

The following objects are masked from 㤼㸱package:stats㤼㸲:

    filter, lag

The following objects are masked from 㤼㸱package:base㤼㸲:

    intersect, setdiff, setequal, union
# library(eeptools) 
# library(estimatr) 
library(FinCal) 
# library(formatR) 
# library(ggfortify) 
# library(ggpubr) 
 library(ggplot2) 
# library(haven) #para la lectura de archivos DTA de Stata
# library(Hmisc) 
# library(infer) 
# library(knitr) 
# library(lmtest) 
# library(margins) 
# library(nycflights13) 
# library(psych) 
library(readxl) 
library(reshape2) #para hacer ReShape (Pivot Tables)
# library(rms) 
# library(skimr) 
# library(stargazer) 
# library(stringr) 
# library(survival) 
# library(tableone) 
library(tidyr) #para hacer ReShape (Pivot Tables)

Attaching package: 㤼㸱tidyr㤼㸲

The following object is masked from 㤼㸱package:reshape2㤼㸲:

    smiths
library(tidyverse) 
Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
-- Attaching packages ------------------------------------------------------------------------------------------------------------ tidyverse 1.3.1 --
v tibble  3.1.4     v stringr 1.4.0
v readr   2.0.1     v forcats 0.5.1
v purrr   0.3.4     
-- Conflicts --------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
library(TTR) #para las graficas de series de tiempo
# library(wooldridge) 
library(xlsx) #para exportar a Excel file

A partir de aquí la Sección de Importación de Datasets:

getwd() #get to show me the current Working Directory 
[1] "I:/001.7 CURSO-02 Lenguaje R Semillero/21.09.25.R.Lab08-R_Notebook importingData"
### Cargando BBDD: n5ay5qadfe7e1nnsv5s01oe1x62mq51j.csv ####
# Version de BBDD: 2021.09.24 v1
# RUTA: https://ibm.box.com/shared/static/

# code to download the dataset
download.file("https://ibm.box.com/shared/static/n5ay5qadfe7e1nnsv5s01oe1x62mq51j.csv", destfile="movies-db.csv")
trying URL 'https://ibm.box.com/shared/static/n5ay5qadfe7e1nnsv5s01oe1x62mq51j.csv'
Content type 'text/csv' length 1424 bytes
downloaded 1424 bytes
movies_data <- read.csv("movies-db.csv", header=TRUE, sep=",")
movies_data

REVISION RAPIDA DEL DATAFRAME:

#View(movies_data)
summary(movies_data) # Summary Estadístico.
     name                year        length_min        genre           average_rating  cost_millions        foreign    age_restriction
 Length:30          Min.   :1936   Min.   : 81.00   Length:30          Min.   :5.200   Min.   :  0.400   Min.   :0.0   Min.   : 0.00  
 Class :character   1st Qu.:1988   1st Qu.: 99.25   Class :character   1st Qu.:7.925   1st Qu.:  3.525   1st Qu.:0.0   1st Qu.:12.00  
 Mode  :character   Median :1998   Median :110.50   Mode  :character   Median :8.300   Median : 13.000   Median :0.0   Median :14.00  
                    Mean   :1996   Mean   :116.80                      Mean   :8.103   Mean   : 22.300   Mean   :0.4   Mean   :12.93  
                    3rd Qu.:2008   3rd Qu.:124.25                      3rd Qu.:8.500   3rd Qu.: 25.000   3rd Qu.:1.0   3rd Qu.:16.00  
                    Max.   :2015   Max.   :179.00                      Max.   :9.300   Max.   :165.000   Max.   :1.0   Max.   :18.00  
head(movies_data) # Primeros 6.
names(movies_data) # Names de columnas.
[1] "name"            "year"            "length_min"      "genre"           "average_rating"  "cost_millions"   "foreign"         "age_restriction"
print(is.data.frame(movies_data))
[1] TRUE
#attach(movies_data) #only if there is only 1 dataset 
# CONTENIDO DE TABLA:
# movies_data es la tabla con datos de películas.

A partir de aquí inicia el Cuerpo del Script:

my_data <- movies_data
akira <- my_data[my_data$name == "Akira", "average_rating"]
akira
[1] 8.1

Creo la Function isGoodRating:

isGoodRating <- function(rating, threshold = 7){
    if(rating < threshold){
        return("NO") # return NO if the movie rating is less than the threshold
    }else{
        return("YES") # otherwise return YES
    }
}

Llamo a mi function:

isGoodRating(akira)
[1] "YES"
isGoodRating(8, threshold = 8.5)
[1] "NO"

CREACION DE LA FUNCION 2: Now, let’s put this all together into a function, that can take any moviename and return a YES or NO for whether or not we should watch it.

watchMovie <- function(data, moviename){
    rating <- data[data["name"] == moviename,"average_rating"]
    return(isGoodRating(rating))
}

LLAMADA A LA FUNCION 2:

watchMovie(my_data, "Akira")
[1] "YES"

Make sure you take the time to understand the function above. Notice how the function expects two inputs: data and moviename, and so when we use the function, we must also input two arguments.

But what if we only want to watch really good movies? How do we set our rating threshold that we created earlier? Here’s how:

REDEFINO LA FUNCION watchMovie:

watchMovie <- function(data, moviename, my_threshold){
    rating <- data[data$name == moviename,"average_rating"]
    return(isGoodRating(rating, threshold = my_threshold))
}

Now our watchMovie takes three inputs: data, moviename and my_threshold:

watchMovie(my_data, "Akira", 7)
[1] "YES"

What if we want to still set our default threshold to be 7? Here’s how we can do it:

DEFINO LA FUNCION watchMOvie por 3ra vez:

watchMovie <- function(data, moviename, my_threshold = 7){
    rating <- data[data[,1] == moviename,"average_rating"]
    return(isGoodRating(rating, threshold = my_threshold))
}

LLAMO A LA FUNCION 2 (VERSION 3):

watchMovie(my_data,"Akira")
[1] "YES"
LS0tDQp0aXRsZTogJ0xhYm9yYXRvcnkgMDUgRnVuY3Rpb25zIGluIFIgQEVDUiBNYXN0ZXIgVGVtcGxhdGUnDQphdXRob3I6ICJJbmcuIEVybmVzdG8gQ2FuY2hvLVJvZHJpZ3VleiINCmRhdGU6ICIyMDIxLjA5LjI1Ig0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNClByaW1lcm8gbGEgU2VjY2nDs24gZGUgTGlicmVyw61hcyBkZSBGdW5jaW9uZXM6IA0KDQpgYGB7ciBJTlNUQUxBQ0lPTiBMSUJSRVJJQVMgfQ0KIyByb3duYW1lcyhpbnN0YWxsZWQucGFja2FnZXMoKSkNCmxpc3Qub2YucGFja2FnZXMgPC0gYygNCiJhcm0iICwgDQoiYnJvb20iICwgDQoiY29ycnBsb3QiICwgDQoiY293cGxvdCIgLCANCiJkYXRhc2V0cyIgLCANCiJkYXRhc2V0cyIgLCANCiJkcGx5ciIgLCANCiJlZXB0b29scyIgLCANCiJlc3RpbWF0ciIgLCANCiJGaW5DYWwiICwgDQoiZm9ybWF0UiIgLCANCiJnZ2ZvcnRpZnkiICwgDQoiZ2dwdWJyIiAsIA0KImhhdmVuIiAsIA0KIkhtaXNjIiAsIA0KImluZmVyIiAsIA0KImtuaXRyIiAsIA0KImxtdGVzdCIgLCANCiJtYXJnaW5zIiAsIA0KIm55Y2ZsaWdodHMxMyIgLCANCiJwc3ljaCIgLCANCiJyZWFkeGwiICwgDQoicmVzaGFwZTIiICwgDQoicm1zIiAsIA0KInNraW1yIiAsIA0KInN0YXJnYXplciIgLCANCiJzdHJpbmdyIiAsIA0KInN1cnZpdmFsIiAsIA0KInRhYmxlb25lIiAsIA0KInRpZHlyIiAsIA0KInRpZHl2ZXJzZSIgLCANCiJUVFIiICwgDQoid29vbGRyaWRnZSIgLCANCiJ4bHN4IiANCikNCmhhcyAgIDwtIGxpc3Qub2YucGFja2FnZXMgJWluJSByb3duYW1lcyhpbnN0YWxsZWQucGFja2FnZXMoKSkNCmlmKGFueSghaGFzKSkgaW5zdGFsbC5wYWNrYWdlcyhuZXcucGFja2FnZXNbIWhhc10pDQoNCmBgYA0KDQoNCkxsYW1hZGEgYSBMSUJSRVJJQVM6DQpgYGB7ciBMTEFNQURBIEEgTElCUkVSSUFTfQ0KIyBsaWJyYXJ5KGFybSkgDQojIGxpYnJhcnkoYnJvb20pIA0KIyBsaWJyYXJ5KGNvcnJwbG90KSANCiMgbGlicmFyeShjb3dwbG90KSANCiMgbGlicmFyeShkYXRhc2V0cykgDQpsaWJyYXJ5KGRwbHlyKSANCiMgbGlicmFyeShlZXB0b29scykgDQojIGxpYnJhcnkoZXN0aW1hdHIpIA0KbGlicmFyeShGaW5DYWwpIA0KIyBsaWJyYXJ5KGZvcm1hdFIpIA0KIyBsaWJyYXJ5KGdnZm9ydGlmeSkgDQojIGxpYnJhcnkoZ2dwdWJyKSANCiBsaWJyYXJ5KGdncGxvdDIpIA0KIyBsaWJyYXJ5KGhhdmVuKSAjcGFyYSBsYSBsZWN0dXJhIGRlIGFyY2hpdm9zIERUQSBkZSBTdGF0YQ0KIyBsaWJyYXJ5KEhtaXNjKSANCiMgbGlicmFyeShpbmZlcikgDQojIGxpYnJhcnkoa25pdHIpIA0KIyBsaWJyYXJ5KGxtdGVzdCkgDQojIGxpYnJhcnkobWFyZ2lucykgDQojIGxpYnJhcnkobnljZmxpZ2h0czEzKSANCiMgbGlicmFyeShwc3ljaCkgDQpsaWJyYXJ5KHJlYWR4bCkgDQpsaWJyYXJ5KHJlc2hhcGUyKSAjcGFyYSBoYWNlciBSZVNoYXBlIChQaXZvdCBUYWJsZXMpDQojIGxpYnJhcnkocm1zKSANCiMgbGlicmFyeShza2ltcikgDQojIGxpYnJhcnkoc3RhcmdhemVyKSANCiMgbGlicmFyeShzdHJpbmdyKSANCiMgbGlicmFyeShzdXJ2aXZhbCkgDQojIGxpYnJhcnkodGFibGVvbmUpIA0KbGlicmFyeSh0aWR5cikgI3BhcmEgaGFjZXIgUmVTaGFwZSAoUGl2b3QgVGFibGVzKQ0KbGlicmFyeSh0aWR5dmVyc2UpIA0KbGlicmFyeShUVFIpICNwYXJhIGxhcyBncmFmaWNhcyBkZSBzZXJpZXMgZGUgdGllbXBvDQojIGxpYnJhcnkod29vbGRyaWRnZSkgDQpsaWJyYXJ5KHhsc3gpICNwYXJhIGV4cG9ydGFyIGEgRXhjZWwgZmlsZQ0KDQpgYGANCg0KDQpBIHBhcnRpciBkZSBhcXXDrSBsYSBTZWNjacOzbiBkZSBJbXBvcnRhY2nDs24gZGUgRGF0YXNldHM6DQpgYGB7ciBEQVRBIH0NCmdldHdkKCkgI2dldCB0byBzaG93IG1lIHRoZSBjdXJyZW50IFdvcmtpbmcgRGlyZWN0b3J5IA0KIyMjIENhcmdhbmRvIEJCREQ6IG41YXk1cWFkZmU3ZTFubnN2NXMwMW9lMXg2Mm1xNTFqLmNzdiAjIyMjDQojIFZlcnNpb24gZGUgQkJERDogMjAyMS4wOS4yNCB2MQ0KIyBSVVRBOiBodHRwczovL2libS5ib3guY29tL3NoYXJlZC9zdGF0aWMvDQoNCiMgY29kZSB0byBkb3dubG9hZCB0aGUgZGF0YXNldA0KZG93bmxvYWQuZmlsZSgiaHR0cHM6Ly9pYm0uYm94LmNvbS9zaGFyZWQvc3RhdGljL241YXk1cWFkZmU3ZTFubnN2NXMwMW9lMXg2Mm1xNTFqLmNzdiIsIGRlc3RmaWxlPSJtb3ZpZXMtZGIuY3N2IikNCg0KbW92aWVzX2RhdGEgPC0gcmVhZC5jc3YoIm1vdmllcy1kYi5jc3YiLCBoZWFkZXI9VFJVRSwgc2VwPSIsIikNCm1vdmllc19kYXRhDQpgYGANClJFVklTSU9OIFJBUElEQSBERUwgREFUQUZSQU1FOg0KYGBge3J9DQojVmlldyhtb3ZpZXNfZGF0YSkNCnN1bW1hcnkobW92aWVzX2RhdGEpICMgU3VtbWFyeSBFc3RhZMOtc3RpY28uDQpoZWFkKG1vdmllc19kYXRhKSAjIFByaW1lcm9zIDYuDQpuYW1lcyhtb3ZpZXNfZGF0YSkgIyBOYW1lcyBkZSBjb2x1bW5hcy4NCnByaW50KGlzLmRhdGEuZnJhbWUobW92aWVzX2RhdGEpKQ0KI2F0dGFjaChtb3ZpZXNfZGF0YSkgI29ubHkgaWYgdGhlcmUgaXMgb25seSAxIGRhdGFzZXQgDQojIENPTlRFTklETyBERSBUQUJMQToNCiMgbW92aWVzX2RhdGEgZXMgbGEgdGFibGEgY29uIGRhdG9zIGRlIHBlbMOtY3VsYXMuDQpgYGANCg0KDQpBIHBhcnRpciBkZSBhcXXDrSBpbmljaWEgZWwgQ3VlcnBvIGRlbCBTY3JpcHQ6DQpgYGB7ciBDVUVSUE99DQpteV9kYXRhIDwtIG1vdmllc19kYXRhDQpha2lyYSA8LSBteV9kYXRhW215X2RhdGEkbmFtZSA9PSAiQWtpcmEiLCAiYXZlcmFnZV9yYXRpbmciXQ0KYWtpcmENCmBgYA0KDQoNCkNyZW8gbGEgRnVuY3Rpb24gaXNHb29kUmF0aW5nOg0KYGBge3IgRlVOQ1RJT04gMX0NCmlzR29vZFJhdGluZyA8LSBmdW5jdGlvbihyYXRpbmcsIHRocmVzaG9sZCA9IDcpew0KICAgIGlmKHJhdGluZyA8IHRocmVzaG9sZCl7DQogICAgICAgIHJldHVybigiTk8iKSAjIHJldHVybiBOTyBpZiB0aGUgbW92aWUgcmF0aW5nIGlzIGxlc3MgdGhhbiB0aGUgdGhyZXNob2xkDQogICAgfWVsc2V7DQogICAgICAgIHJldHVybigiWUVTIikgIyBvdGhlcndpc2UgcmV0dXJuIFlFUw0KICAgIH0NCn0NCmBgYA0KDQoNCkxsYW1vIGEgbWkgZnVuY3Rpb246DQpgYGB7cn0NCmlzR29vZFJhdGluZyhha2lyYSkNCmBgYA0KYGBge3J9DQppc0dvb2RSYXRpbmcoOCwgdGhyZXNob2xkID0gOC41KQ0KYGBgDQoNCg0KQ1JFQUNJT04gREUgTEEgRlVOQ0lPTiAyOg0KTm93LCBsZXQncyBwdXQgdGhpcyBhbGwgdG9nZXRoZXIgaW50byBhIGZ1bmN0aW9uLCB0aGF0IGNhbiB0YWtlIGFueSBtb3ZpZW5hbWUgYW5kIHJldHVybiBhIFlFUyBvciBOTyBmb3Igd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHdhdGNoIGl0Lg0KYGBge3IgRlVOQ0lPTiAyfQ0Kd2F0Y2hNb3ZpZSA8LSBmdW5jdGlvbihkYXRhLCBtb3ZpZW5hbWUpew0KICAgIHJhdGluZyA8LSBkYXRhW2RhdGFbIm5hbWUiXSA9PSBtb3ZpZW5hbWUsImF2ZXJhZ2VfcmF0aW5nIl0NCiAgICByZXR1cm4oaXNHb29kUmF0aW5nKHJhdGluZykpDQp9DQoNCg0KYGBgDQoNCg0KTExBTUFEQSBBIExBIEZVTkNJT04gMjoNCmBgYHtyfQ0Kd2F0Y2hNb3ZpZShteV9kYXRhLCAiQWtpcmEiKQ0KYGBgDQoNCg0KTWFrZSBzdXJlIHlvdSB0YWtlIHRoZSB0aW1lIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bmN0aW9uIGFib3ZlLiBOb3RpY2UgaG93IHRoZSBmdW5jdGlvbiBleHBlY3RzIHR3byBpbnB1dHM6IGRhdGEgYW5kIG1vdmllbmFtZSwgYW5kIHNvIHdoZW4gd2UgdXNlIHRoZSBmdW5jdGlvbiwgd2UgbXVzdCBhbHNvIGlucHV0IHR3byBhcmd1bWVudHMuDQoNCl9CdXQgd2hhdCBpZiB3ZSBvbmx5IHdhbnQgdG8gd2F0Y2ggcmVhbGx5IGdvb2QgbW92aWVzPyBIb3cgZG8gd2Ugc2V0IG91ciByYXRpbmcgdGhyZXNob2xkIHRoYXQgd2UgY3JlYXRlZCBlYXJsaWVyPyBfDQpIZXJlJ3MgaG93Og0KDQpSRURFRklOTyBMQSBGVU5DSU9OIHdhdGNoTW92aWU6DQpgYGB7cn0NCndhdGNoTW92aWUgPC0gZnVuY3Rpb24oZGF0YSwgbW92aWVuYW1lLCBteV90aHJlc2hvbGQpew0KICAgIHJhdGluZyA8LSBkYXRhW2RhdGEkbmFtZSA9PSBtb3ZpZW5hbWUsImF2ZXJhZ2VfcmF0aW5nIl0NCiAgICByZXR1cm4oaXNHb29kUmF0aW5nKHJhdGluZywgdGhyZXNob2xkID0gbXlfdGhyZXNob2xkKSkNCn0NCmBgYA0KDQoNCk5vdyBvdXIgd2F0Y2hNb3ZpZSB0YWtlcyB0aHJlZSBpbnB1dHM6IGRhdGEsIG1vdmllbmFtZSBhbmQgbXlfdGhyZXNob2xkOg0KYGBge3J9DQp3YXRjaE1vdmllKG15X2RhdGEsICJBa2lyYSIsIDcpDQpgYGANCg0KDQpXaGF0IGlmIHdlIHdhbnQgdG8gc3RpbGwgc2V0IG91ciBkZWZhdWx0IHRocmVzaG9sZCB0byBiZSA3Pw0KSGVyZSdzIGhvdyB3ZSBjYW4gZG8gaXQ6DQoNCkRFRklOTyBMQSBGVU5DSU9OIHdhdGNoTU92aWUgcG9yIDNyYSB2ZXo6DQpgYGB7cn0NCndhdGNoTW92aWUgPC0gZnVuY3Rpb24oZGF0YSwgbW92aWVuYW1lLCBteV90aHJlc2hvbGQgPSA3KXsNCiAgICByYXRpbmcgPC0gZGF0YVtkYXRhWywxXSA9PSBtb3ZpZW5hbWUsImF2ZXJhZ2VfcmF0aW5nIl0NCiAgICByZXR1cm4oaXNHb29kUmF0aW5nKHJhdGluZywgdGhyZXNob2xkID0gbXlfdGhyZXNob2xkKSkNCn0NCg0KDQpgYGANCg0KDQpMTEFNTyBBIExBIEZVTkNJT04gMiAoVkVSU0lPTiAzKToNCmBgYHtyfQ0Kd2F0Y2hNb3ZpZShteV9kYXRhLCJBa2lyYSIpDQpgYGANCg==