Manual de R (Estadística)/Descriptiva d'una sola variable
Introducció
modificaPer obtenir una descriptiva (mitjanes i freqüències) d'una taula de dades:
data(Aids2, package="MASS")
library(Hmisc)
describe(Aids2)
Variables qualitatives
modificaExisteixen moltes funcions per fer la descriptiva d'una variable qualitativa, però la que he trobat més útil és l'ordre tab1
del paquet epicalc:
NOTA: El paquet epicalc ja no es pot instal·lar (Package ‘epicalc’ was removed from the CRAN repository).
> library(epicalc) # Es carrega el paquet '''epicalc'''
> data(Aids2, package="MASS") # Es carregen les dades Aids2 del paquet '''MASS'''
> head(Aids2) # Es mostren els 6 primer registres de les dades
state sex diag death status T.categ age
1 NSW M 10905 11081 D hs 35
2 NSW M 11029 11096 D hs 53
3 NSW M 9551 9983 D hs 42
4 NSW M 9577 9654 D haem 44
5 NSW M 10015 10290 D hs 39
6 NSW M 9971 10344 D hs 36
> tab1(Aids2$status, graf=T, main="Variable estat (viu o mort)", missing= FALSE, bar.values="percent")
Aids2$status :
Frequency Percent Cum. percent
A 1082 38.1 38.1
D 1761 61.9 100.0
Total 2843 100.0 100.0
A més de la taula, com s'ha activat l'opció graf = T
, també fa un diagrama de barres sense incloure els casos amb valors desconeguts (missing= FALSE
) i mostrant els percentatges (bar.values = "percent"
).
Una avantatge d'aquesta funció, és que la taula es pot exportar directament en format html utilitzant el paquet R2HTML. El codi seria:
HTMLStart(outdir=".", filename="Exemple_tab1", HTMLframe=FALSE) # Crea fitxer al directori de treball actual (".")
HTML.title("Exemple de descriptiva amb la funció tab1 (epicalc)", HR=3) # Títol en el fitxer html
tab1(Aids2$status, # Fa taula i diagrama de barres
decimal=2,
graf=T,
main="Variable estat (viu o mort)",
missing= FALSE,
bar.values="percent")
HTMLplot() # Inclou el diagrama al fitxer html
HTMLhr() # Tanca el títol
HTMLStop() # Desa el fitxer Exemple_tab1.html
Es crea el fitxer Exemple_tab1.html en el directori de treball (es pot determinar quin es amb la ordre getwd()
). Si es volgués col·locar-lo en en altre directori, es definiria al paràmetre outdir
(p. ex., outdir = sys/viquillibres/
).
Altres funcions, com la CrossTable
(gmodels) no permet aquesta exportació senzilla i directa.
Si només es volgués la descriptiva de l'estat pels homes, es podrien seleccionar els casos amb [Aids2$sex == "M"]
:
> tab1(Aids2$status[Aids2$sex == "M"], decimal=2)
Aids2$status[Aids2$sex == "M"] :
Frequency Percent Cum. percent
A 1046 37.98 37.98
D 1708 62.02 100.00
Total 2754 100.00 100.00
Variables quantitatives
modificaEl R te diverses funcions per resumir les dades quantitatives. Recordar que si les dades tenen valors desconeguts (NA
) sovint s'haurà d'especificar na.rm = TRUE
. P. ex., si es vol estimar la mitjana de l'edat d'un grup de persones (amb una edat desconeguda), amb l'odre means()
:
> DADES = data.frame(SEXE=c("Dona", "Home", "Home", "Dona", "Dona", "Dona", "Home", "Home"),
+ EDAT=c(20,NA,30,24,25,21,32,35))
> mean(DADES$EDAT) # Funció "means" sense especificar "na.rm = TRUE"
[1] NA
el resultat (NA
) no és el desitjat. Per obtenir la mitjana, cal especificar na.rm = TRUE
si es vol que el R no les tingui en compte el valor desconegut:
> DADES = data.frame(SEXE=c("Dona", "Home", "Home", "Dona", "Dona", "Dona", "Home", "Home"),
+ EDAT=c(20,NA,30,24,25,21,32,35))
> mean(DADES$EDAT, na.rm = TRUE) # Funció "means" especificant "na.rm = TRUE"
[1] 26.71429
Algunes de les funcions en les que cal especificar na.rm = TRUE
són: [1]
mean()
,median()
,sum()
,var()
,min()
,max()
,range()
totes han de ser raonablement clarscor()
,cov()
calcula les covariancies i correlacionsmad()
calcula la desviació mitjana absolutaquantile()
calcula diversos quantilssummary()
calcula el mínim, màxim, 1r i 3r quantils, mediana i mitjana.
Es pot obtenir una taula amb els estadístics desitjats amb l'ordre describe
(del paquet prettyR):
> library(prettyR)
> data(Aids2, package="MASS") # Es carregen les dades Aids2 del paquet MASS
> describe(Aids2$age , num.desc=c("mean","median","max", "min"), xname="Edat de la taula de dades Aids2")
Description of Edat de la taula de dades Aids2
Numeric
mean median max min
x 37.41 37 82 0
Amb l'ordre describe
els resultats es poden exportar amb el R2HTML, quedant els resultats en un format decent.