Skip to content

Instantly share code, notes, and snippets.

@HiroNakamura
Last active June 5, 2023 20:37
Show Gist options
  • Save HiroNakamura/099a7ed32b8532d380040efa691bc2d2 to your computer and use it in GitHub Desktop.
Save HiroNakamura/099a7ed32b8532d380040efa691bc2d2 to your computer and use it in GitHub Desktop.
Programando en R

R

Programando en R

R es un entorno y lenguaje de programación (multiparadigma) con un enfoque al análisis estadístico. R nació como una reimplementación de software libre del lenguaje S, adicionado con soporte para ámbito estático.

Instalando R

sudo apt-get update
sudo apt install build-essential
sudo apt install r-base

Mostrar versión

R --version

Ejecutar programa

R -f programa.r

Entrar al Shell

R
>> 3 + 4
>> 3 * 3
>> TRUE || TRUE
>> TRUE && FALSE
>> !FALSE
>> 23 > 21
>> switch(2,"A","B","C")
>> switch(5,"A","B","C")
>> switch(2,"A","B","C","o")
>> rep(c(1,2,3),2)
>> seq(1,3)
>> seq(3,10)
>> seq(from=3, to=30, by=3)
>> rango <- seq(5,10)
>> vector <- c(1,2,3,4,5)
>> nombre <- "Horacio"
>> paste("Nombre: ",nombre)
>> print("Hola, mundo")
>> print(nombre)
>> assign("x",c(1,2,3))
>> x
>> y <- c(2,4,6)
>> x + y
>> z <- x+y
>> 4:30
>> length(x)
>> help(seq)
>> help(assign)
>> help(length)
>> real = 34.5
>> sprintf("%.2f",real)
>> entero = 9
>> sprintf("%d",entero)
>> q()

Obtener ayuda

help(function)

Salir del Shell

q()

Enlaces

salario_neto <- 19000.00
empleado <- "Rosaura Gonzalez Alan"
edo_civil <- "Casada(o)"
aumento <- 0.0
paste("Empleado: ",empleado)
paste("Estado civil: ",edo_civil)
paste("Salario neto: $",salario_neto)
aumentarPor50 <-function(salario){
return((0.50*salario_neto)+salario_neto)
}
aumentarPor10 <-function(salario){
return((0.10*salario_neto)+salario_neto)
}
if(edo_civil == "Casada(o)" & salario_neto < 25000.00){
aumento <- aumentarPor50(salario_neto)
}else if (edo_civil == "Soltera(o)" & salario_neto < 20000.00) {
aumento <- aumentarPor10(salario_neto)
}
paste("Salario final: $",aumento)
# Decalaración de funciones
suma <- function(x,y) {
return(x+y)
}
fahrenheit_to_celsius <- function(temp_F) {
temp_C <- (temp_F - 32) * 5 / 9
return(temp_C)
}
division <-function(x,y){
if(y <=0 ){
return(x)
}
return(x/y)
}
not_or <- function(x,y){
return(!(x & y))
}
esMayorA100 <-function(num){
return(num>100)
}
a <- TRUE
b <- FALSE
numero <- 99
# Invocación de funciones
sprintf("Suma(3,4) = %d ",suma(3,4))
sprintf("Celsius(Fahr=23.5) = %.2f ",fahrenheit_to_celsius(23.5))
sprintf("Division(5,0)=%d",division(5,0))
sprintf("Division(12,7)=%.2f",division(12,7))
sprintf("Not_Or(True, False)=%d",not_or(a,b))
if(esMayorA100(numero)){
sprintf("%d es mayor a 100",numero)
}else{
sprintf("%d no es mayor a 100",numero)
}
print("Hola, mundo en R")
# Rango
rango5To10 <- 5:10
rango10To20 <- seq(10,20)
rango5To25By3 <- seq(5,25, by=3)
rango12To30By3 <- seq(from=12, to=30, by=3)
rep8by4 <- rep(8,4)
repVect <- rep(c(1,2,3),2)
secuencia <- seq(20)
mayorA10 <- any(secuencia > 10)
media <- mean(secuencia)
valores <- c(NA,45,34,21,7,32,5)
media_na <- mean(valores, na.rm=T)
for(x1 in rango5To10){
print(x1)
}
print("==================")
for(x2 in rango10To20){
print(x2)
}
print("==================")
for(x3 in rango5To25By3){
print(x3)
}
print("==================")
for(x4 in rango12To30By3){
print(x4)
}
print("==================")
for(x5 in rep8by4){
print(x5)
}
print("==================")
print(repVect)
if(any(secuencia > 50)){
print("Verdadero, hay un valor mayor a 50.")
}else{
print("Falso, no hay un valor mayor a 50.")
}
if(mayorA10){
print("Correcto, hay valores mayores a 10.")
}
sprintf("Media de la secuencia de 20 numeros es: %.2f",media)
sprintf("Media del vector de valores es: %.2f",media_na)
x <- (1:10)
y <- c(8,4,3,4,10,0,1,5,-2)
print(x)
# Maximos
print(max(x)) # 10
# Minimos
print(min(x)) # 1
# Suma
print(sum(x)) # 55
# Raiz
print(sqrt(x))
# Único
print(unique(y))
# Ordenado
print(sort(y))
# Minimo
print(which.min(y)) # 9
# Maximo
print(which.max(y)) # 5
# Crear curso
tema <- TRUE
cuenta_paypal <- FALSE
camara <-TRUE
microfono <-FALSE
costo <-"De paga"
if(tema){
paste("El curso es: .",costo)
if(cuenta_paypal){
if(camara && microfono){
print("Empezar a grabar curso.")
}else{
print("Debe tener camara y microfono.")
}
}else{
print("Debe contar con cuenta paypal.")
}
}else {
print("Debe tener un tema para su curso.")
}
# Esto daría error de ejecución:
#if(nada == NULL){
# print("Esto es NULL")
#}
num <- 10
paste("Número: ",num)
print(ifelse(num > 5 ,5*num, 10*num)) # 50
print(ifelse(num > 5 ,"Programando en R", "Ciao monde")) # Programando en R
print(ifelse(num == 10, num <- num+2, num <- num-1))# 12
paciente <- "Juan N"
sintomas <- c('dolor','insomnio','tumores','migrañas')
conteo <- 0
tieneCancer <- FALSE
sprintf("Paciente: %s",paciente)
print(sintomas)
for(sintoma in sintomas){
print(sintoma)
conteo <- conteo + 1
if(conteo > 3){
tieneCancer <- TRUE
}
}
if(tieneCancer){
sprintf("%s tiene cancer",paciente)
}else{
sprintf("%s no tiene cancer",paciente)
}
# Declaración de evariables
numero <- 43
nombre <- "Hugo"
verdadero <- FALSE
numeros <- c(1,2,3,4)
paste("numero: ", numero)
paste("verdadero: ", verdadero)
paste("Nombre: ", nombre)
paste("numeros: ",numeros)
# Sentencias selectivas
if(numero > 100){
sprintf("El numero %d es mayor a 100",numero)
}
if(numero < 0){
sprintf("El numero %d es menor a 0",numero)
}else if(numero == 1){
sprintf("El numero es 1")
}else{
sprintf("El numero %d es distinto de 1 y mayor a cero",numero)
}
if(nombre == "Hector"){
print("Hola, Hector")
}else{
sprintf("Hola, %s",nombre)
}
if(!verdadero){
print("Esto es verdadero")
}
if(300<302){
print("A")
}
if(TRUE || FALSE){
print("B")
}
if(45>0 && TRUE){
print("C")
}
if(FALSE || FALSE){
print("D")
}
if(FALSE && FALSE){
print("E")
}
# Sentencias iterativas
for (num in 1:10) {
print(num)
}
# Declaración de vectores
x <- c(1,2,3)
y <- c(4,5,6)
print(x)
print(y)
# Operaciones con vectores
# Concatenar
z <- c(x,y)
print(z)
# Longitud
paste("Longitud de x: ",length(x))
suma <- x+y
print("Suma: ")
print(suma)
resta <- y-x
print("Resta: ")
print(resta)
producto <- x*2
division <- y/2
print("Producto:")
print(producto)
print("División:")
print(division)
a <- c(1,3,4,5,6)
b <- c(9,7,8,1)
c <- a+b # 10 10 12 6 15
print(c)
# Extraer valores de un vector
print(x[0:1])
print(c[2:4]) # 10 12 6
print(x[-1]) # 2 3
d <- c[3:4] # 12 6
print(d)
vector <- c(T,F,T)
otro_vector <- c(34 > 33,90 < 100, 8==0, T)
precio <- c(10,8,6)
frutas <- c('manzana','pera','guayaba')
print(vector) # TRUE FALSE TRUE
print(otro_vector) # TRUE TRUE FALSE TRUE
names(precio)<-frutas
print(precio)
# manzana pera guayaba
# 10 8 6
x <- c(1,2,3,4,5)
y <- c(23,54,0,34,82,26)
paste("Vector [X] = ",x)
print("Elementos que mult. por 5 son mayores a 16 [posiciones]:")
print(which(x*5 > 16)) # 4 5
print("Elementos que divididos entre 5 mayores o iguales a 1 [posiciones]:")
print(which(x/5 >= 1 )) # 5
print("Elementos que sumados entre si son mayores a 50 [posiciones]:")
print(which(y+y > 50 )) # 2 4 5 6
print("Elementos que restados por 50 son mayores a 30 [posiciones]:")
print(which(y-50 > 30 )) # 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment