El paquete R language reshape2 organiza el formato de datos

En la investigación clínica, a menudo es necesario importar datos de pruebas de laboratorio desde el sistema His del hospital. Sin embargo, los datos exportados desde el sistema His son datos amplios y muchos de ellos son el resultado de inspecciones repetidas de varias personas. no es fácil realizar un análisis directo. Como se muestra en la figura siguiente,
Inserte la descripción de la imagen aquí
necesitamos convertir al siguiente formato de datos largos para un análisis más detallado.
Inserte la descripción de la imagen aquí
Hoy usaremos el paquete reshape2 que viene con el lenguaje R para organizar el formato de datos, convertir el formato ancho datos a los datos extensos, o convierta los datos extensos y extensos según sea necesario Hay una importancia práctica positiva en la recopilación de datos clínicos o en la minería de datos.
Primero importemos el paquete reshape2 y simulemos por nosotros mismos una amplia gama de datos de hipertensión leve.

library(reshape2)
id<-rep(1:12)
time<-rep(1:3,4)
sbp<-round(rnorm(12,mean = 150,sd=9))
svd<-round(rnorm(12,mean = 90,sd=8))
bc<-data.frame(id,time,sbp,svd)

Simplemente simule, independientemente de la importancia clínica, la siguiente figura es la estructura de los datos
Inserte la descripción de la imagen aquí

be<-melt(bc,id=c("id","time"),
         measure.vars = (c("sbp","svd")),
         variable.name = "bp",
         value.name = "value") ##ID为固定不变的变量,measure.vars为需要整合的变量,variable.name 为新变量名字

La nueva variable bp integra sbp y svd.
Inserte la descripción de la imagen aquí
También podemos convertir datos largos en datos amplios si es necesario

#转成宽数据
dcast(be,id+time~bp)#转成宽数据

Inserte la descripción de la imagen aquí
Los otros son

dcast(be,id+time~bp,mean)#转成宽数据并取平均值
dcast(be,time~bp,mean)#取3次timede 
acast(be,id~time~bp)#分组表示sbp,svd的平均值

Inserte la descripción de la imagen aquí
Si los datos son grandes, también podemos tomar parte de los subgrupos. Es útil cuando los datos son grandes. Si
toma los subgrupos, debe importar un paquete plyr

#取亚组表示
library(plyr)
acast(be,bp~id,mean, subset = .(bp == "sbp"))#取sbp为亚组的值
acast(be,bp~time,mean, subset = .(bp == "sbp"))#time每次测量平均值取sbp
acast(be,bp~time,mean, subset = .(time == 3))#取第三次sbp和svd的平均值
acast(be,bp~time,mean, subset = .(time <3))#time前两次的sbp和svd的平均值

Para artículos más interesantes, preste atención a la cuenta pública: investigación de base cero
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/dege857/article/details/114453871
Recomendado
Clasificación