Para instalar R en Ubuntu linux, ejecutando lo siguiente:
sudo apt-get install r-cran
Se instalan directamente los siguientes paquetes del repositorio, aunque si se precisa manualmente se puede obtener las diferentes versiones desde: https://cran.r-project.org/
autopoint bzip2-doc debhelper dh-autoreconf dh-strip-nondeterminism gfortran
gfortran-7 libarchive-cpio-perl libfile-stripnondeterminism-perl
libgfortran-7-dev libltdl-dev libmail-sendmail-perl
libsys-hostname-long-perl libtool po-debconf r-base-core r-base-html
r-cran-boot r-cran-class r-cran-cluster r-cran-codetools r-cran-foreign
r-cran-kernsmooth r-cran-lattice r-cran-mass r-cran-matrix r-cran-mgcv
r-cran-nlme r-cran-nnet r-cran-rpart r-cran-spatial r-cran-survival
r-doc-html r-recommended
De modo automático apareció la entrada en el menú para abrir la consola de R (dentro de ‘Educación’). Llama al comando R para poder lanzar instrucciones en lenguaje R directamente.
Para instalar el Rstudio, descargarlo de https://rstudio.com/products/rstudio/download/#download y luego ejecutar:
sudo gdebi rstudio-1.2.5001-amd64.deb
>install.packages(“package“)
>ls() muestra todas las variables del workspace
>data() nos muestra los catálogos de pruebas ya existentes
>args(nombre_funcion) para mostrar los valores que espera la función, recordar usar ‘=’ para darles valor dentro de la función
Para crear:
n <- 1000
x <- seq(1,n)
sum(x)
es lo mismo que:
n <- 25
n*(n+1)/2
>class(dato_del_queremos_saber_su_tipo)
>levels(dato_del_queremos_saber_su_tipo)
>str(structura_del_objeto)
>head(cabecera_del_objeto)
>names(columnas_ del_objeto)
>dataset$nombrecolumnaqueremosver_contenido
>lenth(objeto)
Relational operator ==
Levels and integers
Vectores
>codigos <- c(34,45,56) #concatena
>paises <- c(“España”,”Francia”,”Italia”) #misma longitud
>names(codigos) <- paises #fu names para dar nombre columna
>codigos #comprobación y resultado
España Francia Italia 34 45 56
>seq(start, end, spaces) #sequencia
>1:10 #consecutivos
>codigos[2] #devuelve la segunda posición
>codigos[c(2, 3)]
Francia Italia 45 56
>codigos[1:2] #devuelve también el mismo resultado, tmb lo siguiente:
>codigos[c(“Francia”,“Italia”)]
>y <- as.character(x) #Coercion de x numeric as character
>sort(murders$total) # sorts a vector in increasing order.
>index <- order(x) #produces the indices eg 2 3 1 5 4 in the ordered vector.
>rank(x) #gives us the ranks of the items in the original vector.
>max(murders$total) #returns the largest value while which.max() returns the index of the largest value.
>min(murders$total) #and which.min() work similarly for minimum values.
>murders$state[which.max(murders$population)] # The name of the state with the maximum population
>murder_rate <- murders$total / murders$population * 100000 # how to obtain the murder rate
>murders$state[order(murder_rate, decreasing=TRUE)] # ordering the states by murder rate, in decreasing order
temp <- c(35, 88, 42, 84, 81, 30)
city <- c(“Beijing”, “Lagos”, “Paris”, “Rio de Janeiro”, “San Juan”, “Toronto”)
city_temps <- data.frame(name = city, temperature = temp)
Tidyverse
>install.packages(“dplyr”) # installing and loading the dplyr package
>library(dplyr)
>library(dslabs)
>data(“murders”) #use this to reload after mutation
>murders <- mutate(murders, rate = total / population * 100000) # adding a column with mutate
>filter(murders, rate <= 0.71)# subsetting with filter
>new_table <- select(murders, state, region, rate)# selecting columns with select
>murders %>% select(state, region, rate) %>% filter(rate <= 0.71)# using the pipe
>murders%>%mutate(region, rate = total / population * 100000, rank = rank(-rate))%>%select(region,state,rate,rank)%>%filter(region %in% c(‘Northeast’, ‘West’) & rate < 1) %>% select(state, rate, rank)
>murders <- mutate(murders, rate = total / population * 100000, rank = rank(-rate)) #
>my_states <- filter(murders, region %in% c(“Northeast”, “West”) & rate < 1)
>sum(is.na(na_example)) #contar na’s en el vector
Plot
>x <- with(murders, total / population * 100000)
> hist(x)
>x <- murders$population / 10^6
>y <- murders$total
>plot(x, y) # a simple scatterplot of total murders versus population
>hist(murders$rate) # a histogram of murder rates
>boxplot(rate~region, data = murders) # boxplots of murder rates by region
Programing R
working in vectors.
>a <- 0
>ifelse(a > 0, 1/a, NA) #ifelse(x,TRUE,FALSE)
>new_names <- ifelse(nchar(murders$state)>8,murders$abb,murders$state)
> z <- c(TRUE, TRUE, FALSE) > any(z) #comprueba que cualquier valor es TRUE [1] TRUE > all(z) #comprueba que todos los valores son true, en este caso no: [1] FALSE
LOOP FOR
>compute_s_n <- function(n){
x <- 1:n
sum(x)
}
>m <- 25
>s_n <- vector(length = m) # create an empty vector
for(n in 1:m){
s_n[n] <- compute_s_n(n)
}
#creating a plot for our summation function
>n <- 1:m
>plot(n, s_n)
#a table of values comparing our function to the summation formula
>head(data.frame(s_n = s_n, formula = n*(n+1)/2))
#overlaying our function with the summation formula
>plot(n, s_n)
>lines(n, n*(n+1)/2)
nchar tells you how many characters long a character vector is.
s_n <- 0
sum_n <- function(n){
for(i in 1:n){
x <- 1:n
s_n[i] <- sum(x)
}
max(s_n)
}
sum_n(5000)
Recursos:
- Página principal de R: https://cran.r-project.org/
- Libro: https://rafalab.github.io/dsbook/ Ejemplos de arriba.
- Cheatsheet base R: https://raw.githubusercontent.com/rstudio/cheatsheets/master/base-r.pdf
- De los creadores de Rstudio un entorno IDE en el cloud gratis de momento: https://rstudio.cloud/
- Publicaciones del grupo: https://datascienceplus.com/,
- https://www.rdocumentation.org/
0 comentarios