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:

Categorías: Linux

Admin

Becommerce.es es una colección de mis notas a título personal, use at your own risk.

0 comentarios

Deja un comentario