Cada dato recibe un índice comenzando por 1 según el orden que ocupa el dato en el vector:
Podemos acceder a cada dato por su índice
Para crear un vector usamos la siguente instrucción:
c(dato1,dato2,dato3)
Vector_Datos_Numerico<- c(20,15,10,8,45,6,76,34)
Vector_Datos_caracter<-c("caracter1","carcter2","caracter3")
El acceso a algún dato del vector se puede hacer según la siguiente expresión:
dato_Posicion_i=1Vector_Datos[i]
Por ejemplo:
Vector_Datos_Numerico[1]
## [1] 20
Vector_Datos_Numerico[-2] #todos los datos menos el cuarto dato
## [1] 20 10 8 45 6 76 34
Vector_Datos_Numerico[c(1,3,4)] # posiciones 1, 3 y 4
## [1] 20 10 8
Vector_Datos_Numerico[2:4] #posiciones 2 a 4
## [1] 15 10 8
Modificación de Datos
Vector_Datos_Numerico[1]=200
Nombres de los Elementos de un Vector
Vector=c(1:3)
names(Vector)=c("Dato1","Dato2","Dato3")
length(Vector_Datos_Numerico) # longitud del vector
## [1] 8
sum(Vector_Datos_Numerico) # Suma los elementos del vector
## [1] 394
min(Vector_Datos_Numerico) # Mínimo de los elementos del vector
## [1] 6
max(Vector_Datos_Numerico) # Máximo de los elementos del vector
## [1] 200
mean(Vector_Datos_Numerico) # Promedio de los elementos del vector
## [1] 49.25
sort(Vector_Datos_Numerico) # Ordena los elementos del vector
## [1] 6 8 10 15 34 45 76 200
Una matriz en R es una colección de datos del mismo tipo indexados por filas y columnas.
La expresión para crear matrices es la siguiente:
matrix(data, nrow, ncol, byrow=F)
donde:
data: datos que conforman
nrow: número de filas de la matriz.
ncol: número de columnas de la matriz.
byrow: Orden en que se almacenan los datos de la matriz. Por defecto se colocan por columnas.
Matriz=matrix(1:6,nrow=2,byrow=T)
Matriz_vacia=matrix(,3,4)
Matriz_vacia[1,1]=8
Matriz_vacia[2,]=7
Matriz_vacia[,3]=9
colnames(Matriz_vacia)<-c("Columna1","Columna2","Columna3","Columna4")
rownames(Matriz_vacia)<-c("fila1","fila2","fila3")
Matriz_vacia[,"Columna1"]
## fila1 fila2 fila3
## 8 7 NA
Matriz_vacia["fila1",]
## Columna1 Columna2 Columna3 Columna4
## 8 NA 9 NA
Los Data Frames son estructuras de datos similares a las matrices, pero en donde las columnas pueden ser de diferente tipo:
Vble_Num = c(20, 80, 65)
Vble_cat = c("CATEGORIA 1", "CATEGORIA 2", "CATEGORIA 3")
Vble_logica = c(TRUE, FALSE, TRUE)
data.frame= data.frame(Vble_cat,Vble_Num, Vble_logica) # df is a data frame
Se pueden obtener subconjuntos de datos de un data frame que coincida con ciertas claves o índices que pueden estar en otro tipo de estructura para almacenar datos.
#View(airquality) # airquality es una base de datos de un repositorio en internet
Subconjunto=subset(airquality, Temp > 80, select = c(Ozone, Temp))
#View(Subconjunto)
Una lista es un conjunto de objetos que pueden ser de distintos. Cada posición de la lista contiene un objeto diferente con índice y puede tener Nombre:
Lista_1=list("posicion_1"=c(4,5,7),"posicion_2"=matrix(1,3,3))
Dados unos parámetros y/o variables de entrada, se obtiene una salida.
Crear_Data_Frame=function(variable1,variable2,variable3){
data_frame= data.frame(variable1,variable2,variable3) # df is
return(data_frame)
}
Utilizando la función creada
Data_frame_nuevo=Crear_Data_Frame(c(1,2,3),c("A","B","C"), c("Categoria_1","Categoria_1", "Categoria_2"))
Los datos pueden ser cargados a través de diferentes formatos como archivos planos csv, txt, xls, etc
Ejemplo:
library(readxl)
A1_004012015n <- read_excel("~/LIQUIDEZ_Y_RESISTENCIA_ITM/capacitacion Bases de datos en R/A1_004012015n.xls")
#View(A1_004012015n)
Esta función conforma la serie de tiempo de determinada cuentas PUC.
*Argumentos de la funcion“:
* VECTOR_CUENTAS: vector con las cuentas del PUC que se quieren extrer.
* lista_hojas:Una lista que contiene en cada posición una hoja de excel.
Por ejemplo: * VECTOR_CUENTAS=c(“100000.000000”,“110000.000000”,“110500.000000”) * lista_hojas=lista_15_16
Las hojas se almcenan en una lista. Cada índice de la lista corresponde a una hoja de cálculo con el PUC de determinado mes.
temp = list.files(pattern="*.xls") # Archivo temporal con el nombre de los archivos xls.
lista_15_16 <- list() # Creación de lista vacia
for (x in 1:24) {
lista_15_16[[x]] <- read_excel(temp[x], sheet=1, col_names = FALSE)
}
Esta función conforma la serie de tiempo de determinada cuentas PUC.
Por ejemplo: * VECTOR_CUENTAS=c(“100000.000000”,“110000.000000”,“110500.000000”) * lista_hojas=lista_15_16
VECTOR_CUENTAS=c("100000.000000","110000.000000","110500.000000")
lista_hojas=lista_15_16
EXTRAER_CUENTAS_PUC=function(VECTOR_CUENTAS,lista_hojas){
i=1 # Indice de la lista
D=as.data.frame(lista_hojas[i]) # Se convierte el objeto de la posición i de la lista en un data frame
Q=which(D[,2] == "ACTIVO")-1 #obtener el indice de la fila donde esta ACTIVO
D=D[Q:length(D[,1]),] # Limitar a D desde la fila Q=9 hasta la ultima fila "length(D[,1])"
colnames(D)<-D[1,] # Asignación de nombres a las columas del Data Frame
D=D[-1,] # Eliminar la primera fila del Data Frame
colnames(D)[1]<-"NUMERO_PUC" # Asignar nombre a la columna 1
colnames(D)[2]<-"CUENTA" # Asignar nombre a la columna 2
# Con la función subset obtengo subconjuntos de un conjunto de datos
GIROS_Y_FINANZAS<-subset(D, NUMERO_PUC %in% VECTOR_CUENTAS, select = c(NUMERO_PUC,CUENTA, grep("GIROS",colnames(D))))
class(GIROS_Y_FINANZAS[,3])
GIROS_Y_FINANZAS[,grep("GIROS",colnames(GIROS_Y_FINANZAS))]<-as.numeric(GIROS_Y_FINANZAS[,grep("GIROS",colnames(GIROS_Y_FINANZAS))])
class(GIROS_Y_FINANZAS[,3])
for (i in 2:24){
D=as.data.frame(lista_hojas[i])
Q=which(D[,2] == "ACTIVO")-1
D=D[Q:length(D[,1]),]
colnames(D)<-D[1,]
D=D[-1,]
colnames(D)[1]<-"NUMERO_PUC"
colnames(D)[2]<-"CUENTA"
GIROS_Y_FINANZAS_2<-subset(D, NUMERO_PUC %in% VECTOR_CUENTAS, select = c(grep("COLTEFINANCIERA",colnames(D))))
GIROS_Y_FINANZAS=cbind(GIROS_Y_FINANZAS,GIROS_Y_FINANZAS_2)
}
colnames(GIROS_Y_FINANZAS)[3:26]=as.character(seq(as.Date("2015/1/1"), as.Date("2016/12/1"), "month"))
row.names(GIROS_Y_FINANZAS)=GIROS_Y_FINANZAS[,2]
GIROS_Y_FINANZAS=GIROS_Y_FINANZAS[,-2]
return(GIROS_Y_FINANZAS)
}
CUENTAS_PUC=EXTRAER_CUENTAS_PUC(VECTOR_CUENTAS,lista_15_16)