estructura de datos
vector- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*Los vectores no se encuentran en otros lenguajes de programación, ¡la esencia de R!
Similar al concepto de conjuntos en matemáticas, que consta de uno o más elementos.
Matriz unidimensional para almacenar datos numéricos, de caracteres o lógicos
Los elementos en el vector solo pueden ser de un tipo de datos y no se pueden mezclar
crear
c() # puede entenderse como concatenar/recolectar/combinar
p.ej
(1) x<-c(1,2,3,4,5)
(2) c(1:100) #Construir secuencia aritmética 1
seq (from= 1, to = 100, by = 2) #Construye la secuencia aritmética 2, la diferencia aritmética es 2
seq (from= 1, to = 100, length.out =10) #Solo genera 10 valores, por lo que la diferencia aritmética se hace mayor
(3) x[x>3] Saca el valor de x>3
(4) rep(x,cada = 2, tiempo=5) #Imprimir repetidamente cada elemento de x dos veces, cinco veces
rep(x,c(2,3,5,1,3)) #Especifique el número de repeticiones para cada elemento en x
índice
***Los índices en R comienzan desde 1 en lugar de 0***
x[1] #el primer elemento de x
x[c(4:18)] #x4~18 elementos
x[c(11,11,5,90,2)] #El elemento en la posición especificada
%in% Si el elemento está en el vector, no es necesario hacer un bucle
p.ej. k<- z%in%c("uno", "dos")
nombres() #vector con nombre
por ejemplo, nombres (y) <- c ("uno", "dos", "tres")
Revisar
x[1] <- 1 #Modificar x con índice 1
append( x = nombre del vector, valores = asignación, after= xxx) # inserta un elemento después de xxx
rm(x) #borrar vector
y <- y[-c(1:3)] #eliminar elemento
operación
x+1 #x cada elemento +1
x+y #Suma los elementos correspondientes al índice, debe haber una relación múltiple entre los dos vectores
* #multiplicar
** #exponenciación
%% # resto
%/% # divisible
Funciones comunes
abs(x) # Encuentra el valor absoluto
sqrt(x) # Encuentra la raíz cuadrada
log(16,base = 2) #tomar 2 como base
log10(x) #Encuentra el logaritmo en base 10
exp(x) #calcular exponente
techo (x) #devuelve el entero más grande no menor que x
floor(x) #devuelve el entero más grande no mayor que x
trunc(x) # devuelve la parte entera
round(x, num)#reservar xnum dígitos=
pecado(x)
porque(x)
sum(x) # encuentra la suma
max(x) min(x) # Encuentra el mayor valor
range(x) # Encuentra el rango de x
mean(x) # Encuentra el valor promedio de x
var(x) #retorna la varianza de x
sd(x) #retorno x desviación estándar
prod(x) # Encuentra el producto de la multiplicación x
mediana(x) # Encuentra la mediana de x
cuantil(x) #calcular cuantil
which.max(x) #devuelve el valor de índice máximo del elemento x
cut(num,c(seq(0,100,10))) #Estadísticas de frecuencia
Matriz- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*La matriz es bidimensional y necesita tener filas y columnas
*Los tipos de datos en la matriz deben ser consistentes
m<- matrix(1:20, 4, 5, byrow = T) #Construir una matriz con cuatro filas y cinco columnas, ordenar la matriz por fila
#nombra las filas y columnas
rnames <- c("R1", "R2", "R3", "R4", "R5") #nombre de la fila
cnames <- c("C1", "C2", "C3", "C4", "C5") #nombre de las columnas
dimnames(m) <- lista(rnames, cnames)
dim(x) <- c(4,5) #Añadir dimensión al vector para construir la matriz
índice
m[1,c(2,3,4)] #La primera fila de la matriz m, los elementos de la segunda, tercera y cuarta columna
m[ ,2] #accede a la segunda columna
m[-1,2] #Eliminar la primera fila y acceder a la segunda columna
m["R1","C2"] # también se puede acceder por nombre
operación
Matriz única:
Haz lo mismo para cada elemento.
Matriz doble:
Cuatro operaciones aritméticas: fila y columna consistentes
n*t #Matrix producto interno
n %*%t #producto externo de la matriz
diag(m) # encuentra la diagonal
t(m) #Transposición de matriz, intercambio de filas y columnas
# Calcular la suma
colSumas(m)
filaSumas(m)
# Calcular el promedio
colMeans(m)
FilaMedios(m)
Matriz- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* De hecho, es una matriz multidimensional
crear
dim1 <- c("A1","A2" )
dim2 <- c("B1","B2","B3" )
dim3 <- c("C1", "C2", "C3", "C4" )
z <- array(1:24, c(2,3,4),dimnames = lista(dim1, dim2, dim3))
lista- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*En otros lenguajes de programación, R generalmente es equivalente a una matriz, pero en el lenguaje R, una lista es la estructura de datos más compleja en R.
*Una lista es una combinación ordenada de algunos objetos. Una lista puede almacenar varios vectores, matrices, marcos de datos e incluso combinaciones de otras listas.
Comparar con un vector:
1. Similar al modo vectorial, todos son conjuntos de datos unidimensionales
2. El vector solo puede almacenar un tipo de datos, y los objetos en la lista pueden ser cualquier estructura de datos en R, incluso la lista misma
crear
# Crea una lista aquí para jugar
un <- 1:20
b <- matriz (1:20, 4)
c <- mtcars
d <- "esta es una lista de prueba"
mlist <- list(name1 = a,name2 = b,name3 = c,name4 = d) #Tenga en cuenta que el nombre es opcional
acceso
mlist[1] #El índice es similar a un vector, un subconjunto de la lista de salida o una lista
mlist[[1]] #Dos corchetes muestran el tipo de datos del elemento en sí
mlist[c(1,4)] #Cuando acceda a múltiples elementos, recuerde ponerlos en el vector
mlist $ nombre1 #Acceso a través de $+ nombre, muy eficiente
Revisar
Asignación directa después del acceso
borrar
1. mlist <- mlist[-5] # índice negativo, asignar a la lista original
2. mlist[[5]] <- NULL #Asignar el valor correspondiente a NULL
Marco de datos - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* es una estructura de datos tabular diseñada para simular conjuntos de datos
*El conjunto de datos suele ser una matriz rectangular compuesta de datos, la fila representa la observación y la columna representa la variable. Diferentes industrias tienen diferentes nombres para la fila y la columna del conjunto de datos.
* es en realidad una lista. Los elementos de la lista son vectores, que forman las columnas de la base de datos, y cada columna debe tener la misma longitud, por lo que el marco de datos es una estructura rectangular, y las columnas del marco de datos deben tener un nombre
Matriz y base de datos
1. La forma del marco de datos es muy similar a la matriz.
2. Una base de datos es una lista de reglas de comparación
3. Las matrices deben ser del mismo tipo de datos
4. Cada columna del marco de datos debe ser del mismo tipo, y cada fila puede ser diferente
crear
state <- data.frame(state.name, state.abb, state.reigon, state.x77) #almacenar cada dato como un vector y fusionarlo con data.frame
acceso
state[c(2,4)] #salida de la segunda y cuarta columna
estado[,"estado.abb"]
estado["Alabama",] #índice por nombre
estado$Asesinato # $ símbolo índice
p.ej
lm(peso ~altura ,datos = mujeres) #Casos de uso de regresión lineal
#attach carga el marco de datos en la ruta de búsqueda
p.ej
adjuntar (mtcars) #De esta manera, puede escribir directamente el nombre de la columna sin $
detach(mtcars) #Cancelar la carga después de usar los datos
Factor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rol: clasificación, frecuencia de cálculo y periodicidad
Clasificación de variables:
Tipo nominal: como nombre de ciudad, provincia
Tipo ordenado: bueno, mejor, mejor, mtcars$cyl (la cantidad de cilindros en el automóvil), state.division, state.region
Continuo: cualquier valor en un rango como altura, edad, tasa de crecimiento
En R, las variables nominales y las variables ordinales se denominan factores, factor. Los posibles valores de estas variables categóricas se convierten en un nivel (level), como bueno, mejor, mejor son todos un nivel, y el vector formado por estos valores de nivel se llama factor
definición
f <- factor(c("rojo","rojo", "azul", "verde", "azul", "azul"))
semana <- factor (c("Lun", "Vie", "Jue","Miercoles", "Lun", "Viernes","Dom", ordenado = T, niveles = c("Lun","Mar" , "Wed", "Thu", "Fri", "Sat", "Sun")) #Dar el nivel del factor, para que la salida tenga orden
fcyl <- factor(mtcars$cyl) #Definir una variable como factor