Operación de adquisición de datos en lenguaje R

Los artículos y códigos se han archivado en [almacén de Github: https://github.com/timerring/dive-into-AI ] o en la cuenta pública [AIShareLab] también se pueden obtener respondiendo en lenguaje R.

De hecho, hay una gran cantidad de conjuntos de datos integrados en R que se pueden usar para análisis y práctica, y también podemos crear datos en R que simulen distribuciones específicas. En el trabajo real, los analistas de datos a menudo se enfrentan a datos externos de varias fuentes de datos, es decir, archivos de datos con varias extensiones, como .txt, .csv, .xlsx, .xls, etc. Los archivos con diferentes extensiones representan diferentes formatos de archivo, lo que a menudo confunde a los analistas.

R proporciona una amplia gama de herramientas de importación de datos.

1. Obtenga el conjunto de datos integrado

Los conjuntos de datos integrados en R existen en cada paquete y el paquete básico datasetssolo contiene conjuntos de datos sin funciones. Este paquete proporciona casi 100 conjuntos de datos que cubren diversos campos como la medicina, la naturaleza, la sociología, etc.

Puedes comprobarlo con el siguiente comando:

data(package = "datasets")

Si desea llamar a un conjunto de datos, puede utilizar data( )la función. Ejecute el siguiente comando, R cargará el iris del conjunto de datos en el espacio de trabajo.

data(iris)

Además del paquete de conjuntos de datos, muchos otros paquetes en R también vienen con conjuntos de datos. Si no es el paquete básico el que se carga automáticamente después de ejecutar R, debemos instalar y cargar estos paquetes antes de usar los datos que contienen. A continuación se toman las bacterias del conjunto de datos en el paquete MASS como ejemplo para ilustrar el proceso de llamada de datos:

library(MASS)
data(bacteria)

2. Simular datos con una distribución específica.

R proporciona una serie de funciones que se pueden utilizar para simulaciones numéricas. Estas funciones rcomienzan con , las más utilizadas son: rnorm(), runif(), rbinom() y rpois(), etc. Por ejemplo:

# 后续可视化部分会详细介绍直方图
r1 <- rnorm(n = 100, mean = 0, sd = 1)
# head(r1) # 取前 5 个值看看
hist(r1)

r2 <- runif(n = 10000, min = 0, max = 100)
hist(r2)

r3 <- rbinom(n = 80, size = 100, prob = 0.1)
hist(r3)

r4 <- rpois(n = 50, lambda = 1)
hist(r4)

3. Obtener datos en otros formatos

3.1 formato txt y csv

Si la fuente de datos es un archivo en formato ASCII creado con el Bloc de notas de Windows u otros editores de texto sin formato, podemos usar la función para read.table( )leer los datos y devolver un marco de datos.

Por ejemplo, suponiendo que el archivo de datos de los pacientes del marco de datos creado patients.txtestá almacenado en el directorio de trabajo actual, podemos usar el siguiente comando para leer los datos:

# getwd() # 获取当前工作目录
# 临时创建下 patients.txt 数据文件
ID <- 1:5
sex <- c("male", "female", "male", "female", "male")
age <- c(25, 34, 38, 28, 52)
pain <- c(1, 3, 2, 2, 3)      
pain.f <- factor(pain, levels = 1:3, labels = c("mild", "medium", "severe"))   
patients <- data.frame(ID, sex, age, pain.f)
write.table(patients, "patients.txt", row.names = FALSE)

patients.data <- read.table("patients.txt", header = TRUE)
patients.data

Los archivos de texto delimitados suelen generarse en aplicaciones de hojas de cálculo y bases de datos , donde los archivos .csv son valores separados por comas (Valores separados por comas). La función read.csv( )es una variante de la función read.table() diseñada para leer archivos .csv.

read.table ( )y read.csv ( )Los valores predeterminados de los parámetros en las dos funciones son diferentes.
En la función read.table ( ), el valor predeterminado del encabezado del parámetro es FALSO, es decir, la primera línea del archivo se considera datos en lugar de nombres de variables.
En la función read.csv ( ), el valor predeterminado del encabezado del parámetro es VERDADERO. Por lo tanto, antes de leer los datos, se recomienda abrir el archivo original para verlo y luego configurar los parámetros apropiados para leer los datos correctamente.

write.csv(patients, "patients.csv", row.names=FALSE)
patients.data <- read.csv("patients.csv")
patients.data

Formato 3.2 xls o xlsx

Hay muchas formas de leer datos de hojas de cálculo, la más sencilla de las cuales es guardar el archivo de datos como un archivo delimitado por comas (.csv) en Excel y luego leerlo en R usando el método descrito anteriormente para leer archivos .csv. Los archivos de datos en formato xlsx o xls también se pueden leer directamente con la ayuda de paquetes de terceros, como el paquete openxlsx, el paquete readxl y el paquete gdata .

Tome el paquete openxlsx como ejemplo:

library(openxlsx)
write.xlsx(patients, "patients.xlsx")
patients.data <- read.xlsx("patients.xlsx", sheet = 1)
patients.data

3.3 Importar datos de otro software estadístico

En ocasiones necesitamos leer datos generados por otro software estadístico, como SPSS, SAS, Stata, Minitab, etc. Una forma es generar los datos como archivos de texto desde otro software estadístico y luego leer los datos en R usando las funciones read.table() o read.csv(). Otro método consiste en utilizar paquetes de extensión, como el paquete externo, cuya función principal es leer y escribir datos de otro software estadístico.

El siguiente es un ejemplo de importación de archivos de datos SPSS.

Suponiendo que el archivo de datos patients.savestá almacenado en el directorio de trabajo actual, podemos usar el siguiente comando para leer el conjunto de datos en R:

# 为了节约附件数量,让我们直接从下载到工作区
URL <- "http://download.kesci.com/qlhatmok4/patients.sav"
download.file(URL, destfile = "./patients.sav", method="curl")

library(foreign)
# 函数 `read.spss( )` 中的参数 `to.data.frame` 默认为 FALSE,如果不设置为 TRUE,返回的将是一个列表形式数据。
patients.data <- read.spss("patients.sav" , to.data.frame = TRUE)
patients.data

El proceso de importar archivos de datos de software como SAS y Stata con el paquete externo es similar al anterior; consulte la documentación para obtener más detalles .

4. Entrada de datos

Es posible ingresar datos directamente en R, pero si el volumen de datos es grande (más de 10 columnas o más de 30 filas), ingresar datos en R no es la mejor opción. Podemos elegir software de hoja de cálculo para ingresar datos a pequeña escala, como Excel.

Sin embargo, si la cantidad de datos es grande, la probabilidad de error al ingresar datos manualmente utilizando un software de hoja de cálculo también es alta. En este momento, es más adecuado el software especialmente diseñado para la entrada de datos, como el software gratuito EpiData. El software no sólo puede establecer convenientemente las restricciones de entrada de datos, como verificación de rango, ajuste de palabras, etc., sino también agregar etiquetas a cada variable y valor de variable.

Las funciones en el paquete externo read.epiinfo( )pueden leer directamente los archivos .rec generados por EpiData, pero se recomienda exportar primero los datos ingresados ​​como archivos de datos Stata en EpiData y luego usar la función read.dta() para leer los datos en R. . La ventaja de esto es que se pueden conservar los atributos de las variables preestablecidas en EpiData, como las etiquetas y descripciones de las variables.

Supongo que te gusta

Origin blog.csdn.net/m0_52316372/article/details/132439380
Recomendado
Clasificación