R provee una serie de funciones básicas. La forma de como ingresar los datos, puede ser muy variada. Recomendamos siempre trabajar sus bases de datos desde un procesador de datos como Microsoft Excel y a partir de ahí desde un simple copy and pages o exportación de los datos podremos ingresar nuestros valores. Aquí desarrollaremos múltiples formas para asignar datos al programa, de tal manera que su manejo de datos sea simple y sencillo. entenderemos que R, es un programa que hay que escribir códigos, como simples funciones matemáticas.
43+7
## [1] 50
Observe que el valor entre paréntesis cuadrados [1] se refiere al el numero de la línea (línea 1) donde se encuentran nuestros resultados, en nuestro caso no es tan funcional en este momento, pero resulta útil para cuando trabajamos una matriz con gran cantidad de datos.
76-43
## [1] 33
345/6
## [1] 57.5
25*4
## [1] 100
(12 + 52) * 3
## [1] 192
Así mismo a estos valores se les puede asignar un nombre, que lo denominamos un objeto. Para ello utilizaremos el símbolo “<-”. Por ejemplo
a<- 33
#Significa que a es un objeto cuyo valor es 33.
#Cree un objeto denominado "y" cuyo valor sea igual a 5.
y<-5
#Cree un objeto denominado "z"" cuya función sea la sumatoria de los objetos a + y
z<-a+y
El uso de “<-”" es igual al simbol = en donde mi función u objeto puedo escribirlo de la siguiente manera
z=a+y
Igualmente puede construir otras funciones básicas como suma, resta, multiplicación, división y otras funciones más complejas que desarrollaremos más adelante.
Los objetos puede denominarse con cualquier nombre y pueden construirse funciones más complejas.
variable1<- a+y/0.65
#Es importante conocer que R es sensible a mayúsculas y minúsculas. Por ejemplo, si usted hubiera escrito variable1<- A+y/0.65 con A MAYUSCULA, R no entiende la función. Y aparece el siguiente mensaje.
#Error: objeto 'A' no encontrado
vector1 <-c(1,2,3,4,5)
vector2 <-c(6,7,8,9,10)
vector1
## [1] 1 2 3 4 5
vector2
## [1] 6 7 8 9 10
numeros10al20 <- 10:20
numeros10al20
## [1] 10 11 12 13 14 15 16 17 18 19 20
numerosdescendiente10al2<- 10:2
numerosdescendiente10al2
## [1] 10 9 8 7 6 5 4 3 2
c(1, 2, 3, 4) + c(1, 2, 3, 4)
## [1] 2 4 6 8
c(1, 2, 3, 4) * c(1, 2, 3, 4)
## [1] 1 4 9 16
c(1, 2, 3, 4) / c(1, 2, 3, 4)
## [1] 1 1 1 1
c(1, 2, 3, 4) - c(1, 2, 3, 4)
## [1] 0 0 0 0
a <- array(c(1,2,3,4,5,6,7,8,9,10,11,12),dim=c(3,4)) #dim significa dimensionar
a
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
b <- array(c(1,2,3,4,5,6,7,8,9,10,11,12),dim=c(3,8))
b
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 1 4 7 10 1 4 7 10
## [2,] 2 5 8 11 2 5 8 11
## [3,] 3 6 9 12 3 6 9 12
m <- matrix(c(23,53,23,5,65,32),2,3)
m
## [,1] [,2] [,3]
## [1,] 23 23 65
## [2,] 53 5 32
m2 <- matrix(c(56,24,34,55,12,42,51,65,23,64),2,5)
m2
## [,1] [,2] [,3] [,4] [,5]
## [1,] 56 34 12 51 23
## [2,] 24 55 42 65 64
m2*2
## [,1] [,2] [,3] [,4] [,5]
## [1,] 112 68 24 102 46
## [2,] 48 110 84 130 128
m3 <- matrix(1 : 20, nrow = 5, ncol = 4)
m3
## [,1] [,2] [,3] [,4]
## [1,] 1 6 11 16
## [2,] 2 7 12 17
## [3,] 3 8 13 18
## [4,] 4 9 14 19
## [5,] 5 10 15 20
m4 <- data.frame (grupoa = c(1, 1, 2, 3), grupob = c(21, 8, 13, 5))
m4
## grupoa grupob
## 1 1 21
## 2 1 8
## 3 2 13
## 4 3 5
row.names(m4) <-LETTERS[1:4] # puede escribir ???letters??? en minúscula también, observe la diferencia.
grupoA <- c(0.360, 0.160, 0.334, 0.146, 0.058, 0.044, 0.542)
grupoB <- c(3.66, 3.36, 3.26, 2.60, 2.15, 1.86, 0.435)
m5 <- data.frame(grupoA, grupoB)
m5
## grupoA grupoB
## 1 0.360 3.660
## 2 0.160 3.360
## 3 0.334 3.260
## 4 0.146 2.600
## 5 0.058 2.150
## 6 0.044 1.860
## 7 0.542 0.435
sitioA<-c(5,7)
sitioB<-c(4,4)
m6<-data.frame(sitioA,sitioB)
rownames(m6)<-c("machos","hembras")
m6
## sitioA sitioB
## machos 5 4
## hembras 7 4
Podemos crear una simple secuencia de números
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
seq(1, 29, by=2)
## [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
seq(from = 1, to = 15, by = 2)
## [1] 1 3 5 7 9 11 13 15
seq(1,100,4)
## [1] 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89
## [24] 93 97
seq(10,by=4,length=15)
## [1] 10 14 18 22 26 30 34 38 42 46 50 54 58 62 66
rep(4,9)
## [1] 4 4 4 4 4 4 4 4 4
rep(seq(2, 20, by=3), 2) #repite la secuencia cada 3 números, dos veces
## [1] 2 5 8 11 14 17 20 2 5 8 11 14 17 20
rep(seq(2, 18, by=3), 5)
## [1] 2 5 8 11 14 17 2 5 8 11 14 17 2 5 8 11 14 17 2 5 8 11 14
## [24] 17 2 5 8 11 14 17
z<-vector1+vector2
#Para realizar una función de vectores, debe de tener el cuidado de que ambos sean de la misma longitud.
a1<-c(1,2,3)
a2<-c(1,2)
a3<-a1+a2
## Warning in a1 + a2: longer object length is not a multiple of shorter
## object length
#Permite unir dos o más elementos diferentes, por ejemplo, cuando tenemos nuestros datos de una variable x escrita en Excel de la siguiente manera.
c(0, 3, 6, 7, 9, 12)
## [1] 0 3 6 7 9 12
#Así mismo, podemos asignar un vector a la concatenación.
x<- c(0, 3, 6, 7, 9, 12) # ahora x es un vector de 6 elementos
w<- c(10, 13, 26, 37, 39, 42 ) # ahora w es un vector de 6 elementos
w
## [1] 10 13 26 37 39 42
plot(x,w) #genera un scatterplot
Analice cada uno de los comandos que se van ingresando y copie en su cuaderno la utilidad de este.
set.seed(2016)
datos<-rnorm(100,25,8)
plot(datos, main="Plot")
plot(datos, main="Plot", cex=0.5)
plot(datos, main="Plot", cex=0.5, cex.lab=.7)
plot(datos, main="Plot", cex=0.5, cex.lab=.7)
plot(datos, main="Plot", cex=0.5, cex.lab=.7, cex.axis=.8)
plot(datos, main="Plot", col="yellow4", col.main="red", col.lab="salmon")
plot(datos, main="Plot", col="yellow4", col.main="red", col.lab="salmon", pch=7)
plot(datos, main="Plot",xlab="Eje X", ylab="Eje Y")
plot(datos, main="Plot",xlab="Eje X", ylab="Eje Y", xlim=c(20,60), ylim=c(20,40))
Se recomienda revisar los siguientes videos
…