Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Introducción a R: Comandos básicos y manipulación de datos, Monografías, Ensayos de Estadística

Este documento proporciona una introducción a los comandos básicos y la manipulación de datos en el entorno de programación r. Cubre temas como la lectura de datos desde archivos de texto y excel, la creación de vectores y secuencias, la realización de operaciones aritméticas y lógicas, y la aplicación de funciones estadísticas básicas. También se explica cómo guardar y cargar objetos creados en r, así como la generación de gráficos sencillos. Este documento puede ser útil para estudiantes y profesionales que deseen familiarizarse con las capacidades de r en el análisis de datos.

Tipo: Monografías, Ensayos

2023/2024

Subido el 13/05/2024

1 / 16

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
ALGUNAS INSTRUCCIONES BASICAS EN EL LENGUAJE R
Presionando el respectivo ícono del programa R: o directamente por el inicio y en el submenú de
programas se puede ejecutar el programa. Aparece la siguiente información:
R : Copyright 2003, The R Development Core Team
Version 1.6.2 (2003-01-10)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type `license()' or `licence()' for distribution details.
R is a collaborative project with many contributors.
Type `contributors()' for more information.
Type `demo()' for some demos, `help()' for on-line help, or
`help.start()' for a HTML browser interface to help.
Type `q()' to quit R.
> prompt
> q() para terminar una sesión en R
> ls() Muestra todos los objetos creados previamente en R y que fueron guardados en una sesión
pasada.
> rm() Borra los objetos indicados en paréntesis y separados por comas.
<- Signo de asignación. Lo que está al lado derecho se asigna al lado izquierdo.
En el paquete R las mayúsculas son diferentes a las minúsculas. Es decir Mat, mat, MAT, son objetos
diferentes en R.
En R tenemos dos maneras de ejecutar comandos: Directamente en la ventana de comandos o leyendo un
archivo de comandos previamente copiados en un archivo de texto.
Suponga que las siguientes instrucciones se escribieron previamente
en un archivo de texto. Suponga que la ruta del archivo es:
c:/comandos.txt. En este archivo están las instrucciones:
Para leer estas instrucciones en R usamos la instrucción source:
> source(“c:/comandos.txt “) En Paréntesis se
especifica la ruta del archivo
> ls() Para ver los objetos creados
Otra forma es por el menú que aparece en la parte superior de la
ventana del R.
Aparece una ventana donde se pide el archivo donde están los
comandos. Al presionar aceptar aparece:
> source("C:/comandos.txt")
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga Introducción a R: Comandos básicos y manipulación de datos y más Monografías, Ensayos en PDF de Estadística solo en Docsity!

ALGUNAS INSTRUCCIONES BASICAS EN EL LENGUAJE R

Presionando el respectivo ícono del programa R: o directamente por el inicio y en el submenú de programas se puede ejecutar el programa. Aparece la siguiente información:

R : Copyright 2003, The R Development Core Team Version 1.6.2 (2003-01-10)

R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type license()' orlicence()' for distribution details.

R is a collaborative project with many contributors. Type `contributors()' for more information.

Type demo()' for some demos,help()' for on-line help, or help.start()' for a HTML browser interface to help. Typeq()' to quit R.

prompt q() para terminar una sesión en R

ls() Muestra todos los objetos creados previamente en R y que fueron guardados en una sesión pasada. rm() Borra los objetos indicados en paréntesis y separados por comas. <- Signo de asignación. Lo que está al lado derecho se asigna al lado izquierdo.

En el paquete R las mayúsculas son diferentes a las minúsculas. Es decir Mat , mat , MAT , son objetos diferentes en R. En R tenemos dos maneras de ejecutar comandos: Directamente en la ventana de comandos o leyendo un archivo de comandos previamente copiados en un archivo de texto.

Suponga que las siguientes instrucciones se escribieron previamente en un archivo de texto. Suponga que la ruta del archivo es: c:/comandos.txt. En este archivo están las instrucciones:

Para leer estas instrucciones en R usamos la instrucción source:

source(“c:/comandos.txt “) En Paréntesis se especifica la ruta del archivo ls() Para ver los objetos creados

Otra forma es por el menú que aparece en la parte superior de la ventana del R.

Aparece una ventana donde se pide el archivo donde están los comandos. Al presionar aceptar aparece:

source("C:/comandos.txt")

Funciones de lectura de Datos

En R se tienen diversos comandos para lectura de datos en formatos conocidos u otros. Algunos son:

scan ( ) Lectura de datos sin ninguna estructura particular read.table ( ) Lectura de bases de datos o tablas read.fwf ( ) Lectura de datos con formato fijo

La entrada o lectura de los datos puede hacerse directamente en el teclado o leyendo de un archivo externo.

1. Desde un archivo externo

Suponga que se tiene información acerca del Sexo, edad, Estrato e Ingreso de un grupo de hombres y mujeres. La información se encuentra en el archivo: “ a:/METODOS/datos1.txt “. Para leer los datos desde R se escriben los siguientes comandos:

dat <- scan(“a:/METODOS/datos1.txt”, what=list(“ ”,1,1,1), skip=1) dat

En el objeto dat queda guardada la información del archivo datos1.txt , pero los nombres de la columnas se pierden. La opción what , indica las variables alfanuméricas y numéricas. Las primeras son identificadas en la opción list con el símbolo “”. Las numéricas con el número 1. La opción skip=1 , se puede sustituir por skip=T , indica que la primera fila no será considerada.

Para leer los datos NUMERICOS a una matríz (en este caso de tres columnas), escribimos:

mat<-matrix(scan("a:/metodos/datos2.txt", skip=T),ncol=3, byrow=T) Read 33 items mat El resultado aparece al lado derecho.

Lectura de datos en Excel

Para leer archivos en formato Excel, primero se deben guardar los datos en formato “csv”. Luego se utiliza el comando “ read.csv”

Suponga que los datos anteriores se tienen en un archivo Excel: “datos1.xls”. Estos se guardan en formato csv: “datos1.csv”

dat1 <- read.csv(file.choose(), header=T, sep=";") dat sexo edad estrato ingreso 1 hom 23 3 200000 2 hom 25 4 150000 3 muj 24 3 120000 4 hom 28 5 230000 5 muj 22 4 140000 6 muj 25 3 100000 7 hom 26 4 135000 8 muj 23 3 125000 9 hom 30 4 220000 10 muj 30 4 180000 11 hom 24 3 170000 12 hom 24 4 185000 13 hom 27 3 135000 14 muj 24 4 200000

Generación de datos y vectores.

x1 <- c(3.6, 2.5, 1.8, 3.2, 4.1, 4.0, 3.7, 2.3, 2.8, 3.5, 4.5)

x2 <- c(1:10)

x3 <- c(“Pez”, “Perro”, “Gato”, “Mico”)

Secuencias de Números

s1 <- 2:

s2 <- 25:

s3 <- seq(1,20)

s4 <- seq(1,5,by =0.2)

s5 <- seq(1,5,length=10)

x4 <- c(1,2,3,4) s6 <- rep(x4, times=4)

Para guardar objetos creados en R se usa el comando dump :

dump(c("x1","x2","x3","x4", "s1", "s2", "s3", "s4", "s5", "s6"), file="a:/metodos/objetos1.txt

Para llamar estos objetos usamos el comando source ( “ruta del archivo”) Manipulación de Datos

Algunos operadores usados en R son:

Operador Función Operador Función

+ Suma^ < Menor que

- Resta^ > Mayor que

* Multiplicación^ <= Menor o igual

^ Exponenciación^ >= Mayor o igual

/ División^ == Igual

%/% División Entera^ != Diferente

%% Operador Módulo^ & y (lógica)

| ó (lógica)^ all (…) Todos los referenciados

! no^ any (…) Ninguno de los referenciados

&& Si el primer operando es cierto se

evalúa el segundo

|| Si el primer operando es falso se

evalúa el segundo

Lenguaje Vectorizado

x <- seq(1,10,by=O.8) y <- c(1,3,5,7,9,11.13.15) z <- x+y

Funciones de matrices

x5 <- seq(3,10, by=0.5)

x6 <- matriz(x5, ncol=3, byrow=T)

ncol indica el número de columnas, byrow indica como se llenará la matriz. byrow=T , indica que se debe llenar

por filas. byrow=F , indica que se llena por columnas

Las operaciones entre matrices utilizan los símbolos usuales hasta ahora mencionados. Las operaciones de suma, resta, multiplicación, división, exponenciación, se realizan elemento a elemento.

Otras operaciones especiales entre matrices usan otros argumentos.

a <- matrix(1:16, ncol=4, byrow=T) b <- matrix(5:21, ncol=4, byrow=T)

c <-a+b c1 <-ab c2 <- 2a-3*b+

a%*%b Producto usual entre matrices

t(a) Traza de a

crossprod(a,b) Realiza el producto de la transpuesta de a con b: t(a)%%b* Cuando se usa solo un argumento, realiza t(a)%%a*

c3 <- c(1,2,3,4,5) diag(c3)

c4 <- matrix(x1, ncol=3, nrow=3, byrow=T) det(c4) Determinante de c

c5 <- svd(c4) Produce la descomposición en valores singulares de la matriz c

Pegando matrices.

a

b

cbind(a,b) Esta función pega ambas matrices por columnas: primero a y luego b

rbind(a,b) Esta función pega ambas matrices por filas: primero a y luego b

mat

apply(x, Margin, fun,...) El comando apply permite aplicar una función específica a las filas o columnas o ambas de un objeto x (matriz o arreglo) y devuelve un vector o arreglo con los correspondientes resultados. Margin indica si se aplica a filas o columnas o ambos (1 para filas, 2 para columnas y “c(1,2)” para ambas, fun indica la función que se desea aplicar a x.

apply(mat[,c(1,3)], 2, sum)

round(apply(mat, 2, mean), digits=3)

round(apply(mat[,c(1,3)], 2, mean), digits=3)

Gráficos en R

Considere una base de datos que contiene información de 400 persomnas acerca de 10 variables: GENERO ESTATURA MASA EDAD GASTOM TIEMPO ESTRATO INGRESO TIP_VEH GASERV. Una parte de la base se muestra a continuación:

GENERO ESTATURA MASA EDAD GASTOM TIEMPO ESTRATO INGRESO TIP_VEH GASERV MUJER 168.6 50.7 23.4 394.5 4.4 4 1463.7 BICI 157. HOMBRE 169.5 75.6 30.7 494.4 11.4 2 607.5 PUBLI 148. HOMBRE 171.2 73.8 29.0 484.5 29.4 4 1462.8 PUBLI 137. HOMBRE 155.8 71.8 29.5 512.1 81.3 3 915.9 PUBLI 163. HOMBRE 165.6 78.3 30.6 495.0 2.7 1 561.6 CARRO 182. MUJER 153.1 50.6 27.8 405.0 8.9 4 1526.1 CARRO 137. HOMBRE 185.5 67.2 30.5 502.8 10.9 3 883.2 CARRO 129. HOMBRE 160.8 74.5 31.5 495.9 21.1 3 929.4 BICI 153. MUJER 159.5 58.5 27.3 396.9 100.5 3 855.9 PUBLI 174. MUJER 158.7 57.3 22.5 418.2 1.1 3 905.1 MOTO 155.

Elaboremos algunos gráficos de interés con ayuda de esta base de datos. Primero se lee la base de datos.

> base <- read.table(file.choose(), header=T)

La información es guardada en el objeto “base”. Para ver parte del archive, por ejemplo las primeras 10 filas,

> base[1:10,]

GENERO ESTATURA MASA EDAD GASTOM TIEMPO ESTRATO INGRESO TIP_VEH GASERV

1 MUJER 168.6 50.7 23.4 394.5 4.4 4 1463.7 BICI 157.

2 HOMBRE 169.5 75.6 30.7 494.4 11.4 2 607.5 PUBLI 148.

3 HOMBRE 171.2 73.8 29.0 484.5 29.4 4 1462.8 PUBLI 137.

4 HOMBRE 155.8 71.8 29.5 512.1 81.3 3 915.9 PUBLI 163.

5 HOMBRE 165.6 78.3 30.6 495.0 2.7 1 561.6 CARRO 182.

6 MUJER 153.1 50.6 27.8 405.0 8.9 4 1526.1 CARRO 137.

7 HOMBRE 185.5 67.2 30.5 502.8 10.9 3 883.2 CARRO 129.

8 HOMBRE 160.8 74.5 31.5 495.9 21.1 3 929.4 BICI 153.

9 MUJER 159.5 58.5 27.3 396.9 100.5 3 855.9 PUBLI 174.

10 MUJER 158.7 57.3 22.5 418.2 1.1 3 905.1 MOTO 155.

Lo primero es identificar el tipo de variables, puesto que los gráficos asociados a variables discretas es diferente al de las variables continuas. En esta base se identifican: Variables Discretas: No hay Variables categóricas: Género, Estrato, Tipo de vehículo Variables Continuas: Todas las demás.

El análisis para variables categóricas se hace principalmente con el uso de tablas de frecuencias y diagramas de barras.

La instrucción en R para elaborar tablas de frecuencias es “table”. Por ejemplo par alas variables Género,

Estrato y Tip_veh:

> table(base[,1])

HOMBRE MUJER

> table(ESTRATO,TIP_VEH,GENERO)

, , GENERO = HOMBRE

TIP_VEH

ESTRATO A_PIE BICI CARRO MOTO PUBLI

, , GENERO = MUJER

TIP_VEH

ESTRATO A_PIE BICI CARRO MOTO PUBLI

> table(ESTRATO,TIP_VEH,GENERO)/

, , GENERO = HOMBRE

TIP_VEH

ESTRATO A_PIE BICI CARRO MOTO PUBLI

, , GENERO = MUJER

TIP_VEH

ESTRATO A_PIE BICI CARRO MOTO PUBLI

Si se usa esta instrucción para una variable continua, se obtiene un resultado poco útil, sobre todo si se tienen mucha información.

En el caso continuo, se suelen calcular medidas descriptivas básicas, como medias, medianas, varianzas muestrales, percentiles, etc.

> summary(base[,c(1,2,3,4,5,6,8,9,10)])

GENERO ESTATURA MASA EDAD GASTOM

HOMBRE:236 Min. :140.2 Min. :37.80 Min. :16.50 Min. :368.

MUJER :164 1st Qu.:160.7 1st Qu.:55.60 1st Qu.:25.60 1st Qu.:402.

Median :167.2 Median :69.15 Median :28.10 Median :489.

Mean :167.7 Mean :66.70 Mean :28.11 Mean :458.

3rd Qu.:174.0 3rd Qu.:76.60 3rd Qu.:30.70 3rd Qu.:501.

Max. :199.0 Max. :92.50 Max. :41.90 Max. :523.

TIEMPO INGRESO TIP_VEH GASERV

Min. : 0.20 Min. : 528.0 A_PIE: 28 Min. :111.

1st Qu.: 9.00 1st Qu.: 622.3 BICI : 45 1st Qu.:140.

Median : 22.45 Median : 911.7 CARRO: 84 Median :150.

Mean : 32.81 Mean :1103.0 MOTO : 48 Mean :150.

3rd Qu.: 45.30 3rd Qu.:1500.6 PUBLI:195 3rd Qu.:160.

Max. :299.40 Max. :2336.4 Max. :200.

Para calcular percentiles de una variable continua, se usa la instrucción “quantile”

> quantile(ESTATURA,c(0.05,0.1,0.25,0.5,0.75,0.9,0.95))

> quantile(ESTATURA,c(0.05,0.1,0.25,0.5,0.75,0.9,0.95), type=1)

Gráficos

Gráficos de Barras.

barplot(ESTRATO) barplot(table(ESTRATO)) barplot(table(ESTRATO), col=c('blue', 'cyan', 'red', 'green', 'white', 'yellow')) barplot(table(ESTRATO)/400, col=c('blue', 'cyan', 'red', 'green', 'white', 'yellow'))

Histogramas

Instrucciones para generar números aleatorios de algunas Distribuciones

Distribución (^) Cuanti1es Números Aleatorios.

Uniforme qunif(p,min=0,max=l,lower.tail=TRUE,log.p=FALSE) runif(n,min=0,max=l)

Normal qnorm(p,mean=0,sd=1,lower.tail=TRUE,log.p=FALSE)^ rnorm(n,mean=0,sd=l)

Binomial qbinom(p,size,prob,lower.tail=TRUE,log.p=FALSE)^ rbinom(n,size,prob)

Lognormal qlnorm(p,meanlog=0,sdlog=1,lower.tail=TRUE,log.p=F)^ rlnorm(n,meanlog=0,sdlog=1)

Beta qbeta(p,shape1,shape2,lower.tail=TRUE,log.p=FALSE) rbeta(n,shape1,shape2)

Geométrica qgeom(p,prob,lower.tail=TRUE,log.p=FALSE) rgeom(n,prob)

Gamma qgamma(p,shape,scale=1,lower.tail=TRUE,log.p=FALSE)^ rgamma(n,shape,scale=1)

JI cuadrado qchisq(p,df,ncp=0,lower.tail=TRUE,log.p=FALSE)^ rchisq(n,df,ncp=0)

Exponencial qexp(p,rate=1,lower.tail=TRUE,log.p=FALSE)^ rexp(n,rate=1)

F qf(p,df1,df2,lower.tail=TRUE,log.p=FALSE) rf(n,df1,df2)

Hipergeom qhyper(p,m,n,k,lower.tail=TRUE,log.p=FALSE) rhyper(nn,m,n,k)

T qt(p,df,lower.tail=TRUE,log.p=FALSE) rt(n,df)

Poisson qpois(p,lambda,lower.tail=TRUE,log.p=^ FALSE)^ pois(n,lambda)

Weibull weibull(p,shape,sca1e=1,lower.tail=TRUE,log.p=FALSE)^ rweibull(n,shape,scale=1)

Binom.Neg. qnbinom(p,size,prob,mu,lower.tail=TRUE,loq.p=FALSE) rnbinom(n,size,prob,mu)

Donde: p: Es un vector de probabilidades (acumuladas). m: Número de observaciones, excepto para la Hipergeométrica, donde nn es el número de observaciones. Si la longitud de n es mayor que 1, la longitud es tomada como el número requerido.