[PDF] Introduccion a R_v1617.key 1. Introducción a R.





Previous PDF Next PDF



Unit 7 Conditional Sentences (Type 0-3)

31 thg 1 2020 Whenever there is a typhoon



BH/BV DIN series

Po. Features. (1) All models fully comply with IEC regulations. (2) Units can be mounted on a standard 35mm IEC rail. (3) Residual current circuit breakers 







5 Conditionals

There are four types of conditionals: Type 0 conditionals Type 1 conditionals



lesson fourteen-conditional.pdf

0. - PRESENT Unreal conditionals (type II + III) sometimes can be mixed that is



CONDITIONALS 0 1

https://www.zsvyhlidka.cz/wp-content/uploads/2020/06/Anglick%C3%BD-jazyk-VII.A-CONDITIONALS-0-1-2-.pdf



Mitsubishi Programmable Controllers Training Manual MELSEC iQ

1. 2. 3. 4. D105 1 2 3 4. This device displays the current value of T10. 0. Initial indication device (D0). END. 33. D105. T10. OUT. D106. C10. OUT. D105. T10.



ETSI TS 123 040 V15.3.0 (2019-04)

The content of the PDF version shall not be modified without the written authorization of ETSI. The copyright and the foregoing restriction extend to 



MISRA C++:2008 - Guidelines for the use of the C++ language in

The definition of the floating-point types in accordance with Rule 3–9–2



1 GRAMMAR: CONDITIONAL SENTENCES. TYPES 0 1

https://homeworkuetemm.files.wordpress.com/2017/06/conditional-sentences.pdf



Unit 7 Conditional Sentences (Type 0-3)

A conditional has two parts – an if-clause and a main clause. We use Type 1 conditional to talk about things which may happen now or in the future.



Conditional exercise (first / second / third conditionals)

1. (First conditional) If we don't work harder we won't pass the exam. 2. (Third conditional) If the 



Introducción al Análisis de Series Temporales

1.1 SERIES TEMPORALES. SERIES TEMPORALES. PÁGINA 6. 0. 1. 2. 3 GARCH(11) (del inglés Generalized AutoRegressive Conditional Heteroskedasticity) cuando.



Conditional Sentences / If-Clauses Type I II und III

B. Conditional Sentence Type 2 : ? It is possible but very unlikely that the condition will be fulfilled. Form: 



Introduccion a R_v1617.key

1. Introducción a R. 1- 2. ¿Por qué R? Es un entorno integrado 1- 3. Instalación. Directamente desde: The R Project for Statistical Computing.



Conditionals – 0 1 and 2

25/03/2021 3. If you don't water the plants c. I put on a coat. 4.If it rains



1 GRAMMAR: CONDITIONAL SENTENCES. TYPES 0 1

http://www.centaclmancha.es/arbitrosclm/images/INGLES/ingles/Grammar/20.Conditional%20sentences/20.Answer%20key-Conditional%20sentences.pdf



Zero Conditional Exercise 1

(I / wake up late / I / be late for work). 2. (my husband / cook / he / burn the food). 3. (Julie / not wear a hat / she / get sunstroke) 



PROBABILITY

experiment then the conditional probability of the event E under the condition that A random variable X taking values 0

1. Introducción a R 1-Tema 1Introducción al paquete de software R1© Javier Gorgas & Nicolás CardielIntroducción Instalación. R Studio. Características principales Estructuras de datos Vectores Matrices y arrays Factores Listas Data frames TablasFunciones Valores especiales Subgrupos Algunas operaciones básicas Estructuras de control Lectura y escritura de datos Paquetes y ejemplos en R Gráficas Referencias

1. Introducción a R 1-2¿Por qué R? Es un entorno integrado, no una colección de herramientas, especialmente desarrollado para el análisis de datos, los cálculos estadísticos y las representaciones gráficas. Es un lenguaje de programación muy sencillo Es software LIBRE Disponible para diferentes plataformas (Unix, MacOS, Windows) Muy usado en la investigación científica IntroducciónIntroducción

1. Introducción a R 1-4http://www.rstudio.comInterface de usuario para R, potente, sencillo Software LIBRE. Versiones para linux, Mac, WindowsDiferentes ventanas para: Scripts Consola de comandos Lista de variables Variables individuales Historial Gráficas Manejo de paquetes Directorio HelpIntroducción

1. Introducción a R 1-Antes de empezar a trabajar con R conviene crear un subdirectorio exclusivo para el trabajo en R, o, mucho mejor, un directorio para cada proyecto diferenteCaracterísticas principales5Arrancando R:[user@pc]$mkdirwork[user@pc]$cdwork[user@pcwork]$RTUTORIAL BASADO EN First Steps in R por M. Ceballos y N. Cardiel (http://venus.ifca.unican.es/Rintro/)o arrancando RStudio desde el icono correspondienteCuidado: R distingue entre mayúsculas y minúsculas:>a=1>A=2>a==A[1]FALSESaliendo de R:>quit()Saveworkspaceimage?[y/n/c]:#posibilidaddesalvarinformación>quit(save="no")#paralapróximasesión>Ctrl-DSe puede usar la tecla TAB para completar comandos>hishisthist.defaulthistoryEn RStudio situando el ratón sobre las diferentes opciones se obtiene informaciónen linuxCaracterísticas principales

1. Introducción a R 1-6>help.start()#abreventanaconwebparaayuda>help("pp")#ayudaconlafunción"pp">?pp#ayudaconlafunción"pp">help.search("pp")#buscaaparicionesdelacadena"pp">??pp#buscaaparicionesdelacadena"pp">apropos("pp",mode="function")#listafuncionescon"pp"enelnombre>example(topic)#correelcódigoenRconejemplosenuntópico#determinado(porejemplo"example(plot)")Buscando AYUDA:o usar directamente el buscador del sistema de ayuda de RStudioDirectorios y entrada/salida>R.home()#vuelvealdirectorioraízdeR[1]"/usr/lib64/R">getwd()#vuelvealdirectoriodetrabajo[1]"/home/user/R">setwd("/home/user/newRdir")#estableceunnuevodirectoriodetrabajo>dir()#muestraelcontenidodeldirectorioactual>ls()...#muestraelcontenidodelespaciodetrabajo>history(n)#muestralosúltimosncomandos>source("filename.R")#ejecutacomandosenelscriptfilename.R>sink("register.txt")#envíalasalidadeRaunficheroexterno>sink()#terminaelenvíoanterior(vuelveaterminal)>save.image("filename")#guardaespaciodetrabajo>load("filename")#cargaespaciodetrabajo>save(objectlist,file="filename")#guardaobjetosespecíficos>options()#muestralasopciones>options(opt=...)#fijaunaopciónCaracterísticas principales

1. Introducción a R 1-7Estructuras de datosR es un lenguaje orientado a objetos (un objeto es algo que puede ser asignado a una variable)TIPOS DE ESTRUCTURAS Vectores (unidimensionales) Matrices (bidimensionales) Arrays (multidimensionales) Factores (vectores de variables categóricas, para agrupar los componentes de otro vector) Listas (colección de objetos, cada uno puede ser de un tipo) Data Frames (generalización de matrices; cada fila es un elemento, cada columna una variable de diferente tipo) Funciones (objetos creados para hacer operaciones)de tipo (mode): numeric, complex, logical, character)Función: "str(objeto)": da el tipo e información sobre el objetoEstructuras de datos

1. Introducción a R 1-8Vectores numéricos>a<-1.7>1.7->a>a=1.7>assign("a",1.7)>b<-c(10,11,15,19)Asignación de valores>a[1]1.7>print(a)[1]1.7>b[1]10111519Mostrar valores(concatenar)Las operaciones se ejecutan sobre todos los elementos de la variable:>b*b[1]100121225361>1/b[1]0.100000000.090909090.066666670.05263158>c<-b-1>c[1]9101418Generando una secuencia:>2:10[1]2345678910>5:1[1]54321>seq(from=1,to=10,by=3)[1]14710>seq(1,10,3)[1]14710>seq(length=10,from=1,by=3)[1]14710131619222528>a<-1:3;b<-rep(a,times=3);c<-rep(a,each=3)>a[1]123>b[1]123123123>c[1]111222333Generando repeticiones:Pueden combinarse vectores de diferente tamaño siempre que el tamaño de uno sea múltiplo del otro>x[n]#elementoenlaposiciónn>x[c(n1,n2)]#elementoenlas#posicionesn1yn2>x[n1:n2]#elementoenlas#posicionesden1an2Refiriéndose a elementos:Estructuras de datos

1. Introducción a R 1-9Vectores lógicos>a<-seq(1:10)>a[1]12345678910>b<-(a>5)#asignavaloresTRUEoFALSEapartir#deunadesigualdad>b[1]FALSEFALSEFALSEFALSEFALSETRUETRUETRUETRUETRUE>a[b]#muestralosvaloresquecumplenunacondición[1]678910>a[a>5]#igual,peroevitandovariablesintermedias[1]678910Toma valores TRUE o FALSE>a<-"Thisisanexample">a[1]"Thisisanexample">x<-1.5>y<--2.7>paste("Pointis(",x,",",y,")",sep="")#concatenandox,ymásuntextousando'paste'[1]"Pointis(1.5,-2.7)">a<-"Thisisanexample"#extrayendounapartedelacadena>substr(a,6,11)[1]"isan"Vectores con caracteresEstructuras de datos

1. Introducción a R 1-10Matrices>a<-matrix(1:12,nrow=3,ncol=4)>a[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912>dim(a)[1]34>a<-matrix(1:8,nrow=4,ncol=4,byrow=TRUE)>a[,1][,2][,3][,4][1,]1234[2,]5678[3,]1234[4,]5678Variable bidimensional>z<-array(1:24,dim=c(2,3,4))>z,,1[,1][,2][,3][1,]135[2,]246,,2[,1][,2][,3][1,]7911[2,]81012,,3[,1][,2][,3][1,]131517[2,]141618,,4[,1][,2][,3][1,]192123[2,]202224>dim(z)[1]234ArraysVariable n-dimensionalLos elementos se reciclan si hay menos elementos que espacios a a rellenar. Si no se dice lo contrario, se rellenan por columnas, para hacerlo por filas incluir "byrow=TRUE">x[i,]#filai>x[,j]#columnaj>x[i,j]#elementoi,jRefiriéndose a elementos:Estructuras de datos

1. Introducción a R 1-12Listas>gal<-list(name="NGC3379",morf="E",T.RC3=-5,colours=c(0.53,0.96))>gal$name[1]"NGC3379"$morf[1]"E"$T.RC3[1]-5$colours[1]0.530.96>gal$#conlateclaTabdespuésde$semuestranloselementosgal$namegal$morfgal$T.RC3gal$colours>length(gal)#muestracuántoselementostiene[1]4>names(gal)#muestralosnombresdeloselementos[1]"name""morf""T.RC3""colours">gal$radio<-TRUE#puedenañadirsenuevoselementos>gal$redshift<-0.002922#addanumericelement>names(gal)[1]"name""morf""T.RC3""colours""radio""redshift">list123<-c(list1,list2,list3)#sepuedenconcatenarvariaslistasparaproducirotraColección ordenadas de objetos, donde se pueden agrupar objetos de diferentes tipos (por ejemplo una combinación de vectores, matrices, factores, otras listas, etc.)Muy versátiles porque pueden almacenar cualquier tipo de información, pero pueden convertirse en estructuras muy complejas.Estructuras de datos

1. Introducción a R 1-13Data frames>options(stringsAsFactors=FALSE)>df<-data.frame(numbers=c(10,20,30,40),text=c("a","b","c","a"))>dfnumberstext110a220b330c440a>df$text[1]"a""b""c""a">options(stringsAsFactors=TRUE)>df<-data.frame(numbers=c(10,20,30,40),text=c("a","b","c","a"))>df$text[1]abcaLevels:abcTipo especial de lista de gran utilidad estadística. Sus componente son vectores, o factores, de igual longitud. La información se organiza en una tabla. Típicamente, cada fila corresponde a un elemento de la muestra. Cada columna a una variable medida en toda (o parte de) la muestra. Los elementos dentro de cada columna son del mismo tipo. Cada columna puede ser de un tipo diferente.En RStudio, pinchando sobre la variable en la ventana "Environment" se muestra la tabla Cuidado: Al crearse, los caracteres se convierten automáticamente en factores. Para evitarlo usar: "options(stringsAsFactors =FALSE)"Se crean con la función: "data.frame(...)"Cada columna (variable) tiene un título o nombreEstructuras de datos

1. Introducción a R 1-14Data frames (II)>x<-data.frame(vector1,vector2,vector3)#vectoresparacadacolumna>#losnombresdecadavariable(columna)serán"vector1",etcPara referirse a las columnas: x[n],x[n1,n2],x[c(n1,n2)]O por el nombre: x[c("vector1","vector2")],x$vector1Función: "attach(x)": en los comandos siguientes se usará el dataframe x por defecto, sin dar su nombre. Ej. vector1se referirá a x$vector1Función: "detach(x)": termina la asignación automáticaSe pueden identificar los elementos de la muestra (filas) indicando en qué columna están los nombres:>x<-data.frame(vector1,vector2,row.names=vector1)Anotando dataframes:•names(dataframe): da un vector con los nombres de las columnas •names(dataframe)[n]<-...: cambia el nombre para la columna n •row.names(dataframe): da un vector con los nombres de las filasAñadiendo una nueva variable:>dfname$y<-dfname$x1+dfname$x2#Enlosdoscasoscreaunanuevavariable>dfname<-transform(dfname,y=x1+x2)#"y"sumandoloscontenidosdex1yx2Estructuras de datos

1. Introducción a R 1-15Tablas>bv<-c(0.92,0.97,0.87,0.91,0.92,1.04,0.91,0.94,0.96,+0.90,0.96,0.86,0.85)#colores(B-V)para13galaxias>fbv<-cut(bv,breaks=3)#divide'bv'en3intervalosdeiguallongitud>fbv#muestraenqueintervaloestácadagalaxia[1](0.913,0.977](0.913,0.977](0.85,0.913](0.85,0.913](0.913,0.977][6](0.977,1.04](0.85,0.913](0.913,0.977](0.913,0.977](0.85,0.913][11](0.913,0.977](0.85,0.913](0.85,0.913]Levels:(0.85,0.913](0.913,0.977](0.977,1.04]>table(fbv)#generaunatablacontandoelnúmerodegalaxiasfbv#(frecuencias)encadaintervalo(0.85,0.913](0.913,0.977](0.977,1.04]661Se pueden generar factores a partir de una variable continua usando el comando cut. Si el parámetro break es un número, indica el número de intervalos. Con table se construye una tabla de frecuencias:>ffbv<-cut(bv,breaks=c(0.80,0.90,1.00,1.10))>table(ffbv)ffbv(0.8,0.9](0.9,1](1,1.1]481>ffffbv<-cut(bv,quantile(bv,(0:4)/4))>table(ffffbv)ffffbv(0.85,0.9](0.9,0.92](0.92,0.96](0.96,1.04]3432Si el parámetro break es un vector, indica los extremos de los intervalos:Para dividir por cuantiles, usar la opción quantile:Se puede usar la opción pretty para dividir en n intervalos más o menos redondeados:>fffbv<-cut(bv,pretty(bv,3))Estructuras de datos

1. Introducción a R 1-16Tablas multidimensionales>heights<-c(1.64,1.76,1.79,1.65,1.68,1.65,1.86,1.82,1.73,1.75,1.59,1.87,+1.73,1.57,1.63,1.71,1.68,1.73,1.53,1.82)>weights<-c(64,77,82,62,71,72,85,68,72,75,81,88,72,71,74,69,81,67,65,73)>ages<-c(12,34,23,53,23,12,53,38,83,28,28,58,38,63,72,44,33,27,32,38)>fheights<-cut(heights,c(1.50,1.60,1.70,1.80,1.90))>fweights<-cut(weights,c(60,70,80,90))>fages<-cut(ages,seq(10,90,10))Construcción de tablas multidimensionales>ta<-table(fheights,fweights)>tafweightsfheights(60,70](70,80](80,90](1.5,1.6]111(1.6,1.7]231(1.7,1.8]241(1.8,1.9]112>addmargins(ta)fweightsfheights(60,70](70,80](80,90]Sum(1.5,1.6]1113(1.6,1.7]2316(1.7,1.8]2417(1.8,1.9]1124Sum69520Tabla entre dos variables:Frecuencias relativas (con el comando prop.table): Añadiendo frecuencias marginales: >tta<-prop.table(ta)>addmargins(tta)fweightsfheights(60,70](70,80](80,90]Sum(1.5,1.6]0.050.050.050.15(1.6,1.7]0.100.150.050.30(1.7,1.8]0.100.200.050.35(1.8,1.9]0.050.050.100.20Sum0.300.450.251.00>table(fheights,fweights,fages)De la misma forma se pueden crear tablas tridimensionales, etcEstructuras de datos

1. Introducción a R 1-17Matrices y tablas>mtab<-matrix(c(30,12,47,58,25,32),ncol=2,byrow=TRUE)>colnames(mtab)<-c("ellipticals","spirals")>rownames(mtab)<-c("sample1","sample2","newsample")>mtabellipticalsspiralssample13012sample24758newsample2532Se pueden crear tablas bidimensionales a partir de matrices:>summary(mtab)V1V2Min.:25.0Min.:121stQu.:27.51stQu.:22Median:30.0Median:32Mean:34.0Mean:343rdQu.:38.53rdQu.:45Max.:47.0Max.:58>summary(rtab)Numberofcasesintable:204Numberoffactors:2Testforindependenceofallfactors:Chisq=9.726,df=2,p-value=0.007726El comando summary devuelve información diferente para una matriz y para una tabla: >rtab<-as.table(mtab)Pero no son "tablas reales". Para transformarlas hacer: >class(mtab);class(rtab)[1]"matrix"[1]"table"Estructuras de datos

1. Introducción a R 1-18Funciones>stddev<-function(x){+res=sqrt(sum((x-mean(x))^2)/(length(x)-1))+return(res)+}Objetos que pueden ser creados por el usuario para hacer, y repetir, operaciones específicas: >mynumbers<-c(1,2,3,4,5)>stddev(mynumbers)[1]1.581139>stddev(x=mynumbers)[1]1.581139Se pueden usar y definir funciones dentro de funciones. El valor devuelto por una función es el resultado de la última expresión evaluada o el especificado con el comando returnLos argumentos de las funciones pueden especificarse por su posición o por su nombre. Puede haber argumentos con valores por defecto. Ejemplo: función para calcular la desviación típica de un vector:>sd(x=mynumbers)#Noseindicaelvalorpordefecto[1]1.581139#na.rm=FALSE(noeliminavaloresNA)>sd(x=mynumbers,na.rm=TRUE)#Argumentospornombre[1]1.581139>sd(mynumbers,na.rm=TRUE)#Argumentosporposición[1]1.581139>sd(na.rm=TRUE,x=mynumbers)#OKperonorecomendado[1]1.581139Ej. Función sd de R (calcula la desviación típica):Estructuras de datos

1. Introducción a R 1-19Funciones iterativas>bv.list<-list(+colsSab=c(0.92,0.87,0.90,0.86),+colsE=c(0.97,0.92,1.04,0.96,0.96),+colsSO=c(0.91,0.91,0.94,0.85))>lapply(bv.list,mean)$colsSab#devuelveunalista[1]0.8875$colsE[1]0.97$colsSO[1]0.9025>sapply(bv.list,mean)#devuelveunvectorcolsSabcolsEcolsSO0.88750.97000.9025lapply (calcula una función para todos los elementos de una lista) sapply (igual pero simplificando el resultado) apply (calcula una función para parte, columnas o filas, de una matriz) tapply (calcula una función para un subconjunto de un vector; ej. usando un factor)>bv<-c(0.92,0.97,0.87,0.91,0.92,1.04,0.91,+0.94,0.96,0.90,0.96,0.86,0.85)>morfo<-c("Sab","E","Sab","S0","E","E","S0",+"S0","E","Sab","E","Sab","S0")>fmorfo<-factor(morfo)#creafactor>tapply(bv,fmorfo,mean)ES0Sab0.97000.90250.8875#aplicalafunciónmediaaloscoloressegregandoportipomorfológico>a<-matrix(1:12,nrow=3,ncol=4)>a[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912>apply(a,1,mean)#mediasporfilas("1")[1]5.56.57.5>rowMeans(a)[1]5.56.57.5>apply(a,1,sum)[1]222630>rowSums(a)[1]222630>apply(a,2,mean)#mediasporcolumnas("2")[1]25811>apply(a,2,sum)[1]6152433Estructuras de datos

1. Introducción a R 1-20Valores especialesNA (Not available): valores no disponibles NaN (Not a Number): valores numéricos imposibles o sin sentido (ej. imaginarios, etc.) Inf: valores infinitos>a<-c(0:2,NA,NA,5:7)>a[1]012NANA567>a*a[1]014NANA253649>unavail<-is.na(a)>unavail[1]FALSEFALSEFALSETRUETRUEFALSEFALSEFALSESe puede seguir operando con estructuras con elementos que tomen estos valores.is.na() sirve para comprobar si tenemos NAs is.nan() sirve para comprobar si tenemos NaNs is.infinite() sirve para comprobar si tenemos Infs>a<-log(-1)>a[1]NaN>a<-1/0;b<-0/0;c<-log(0)>d<-c(a,b,c)>d[1]InfNaN-Inf>1/Inf[1]0>is.infinite(d)[1]TRUEFALSETRUE>is.nan(d)[1]FALSETRUEFALSEEn muchas funciones el argumento na.rm se puede usar para eliminar o no los NAs de los cálculos>a<-c(0:2,NA,NA,5:7)>a[1]012NANA567>mean(a)[1]NA>mean(a,na.rm=TRUE)[1]3.5Estructuras de datos

>a<-1:15>a<-a*a>a[1]149162536496481100121144169196225>a[3]#tercervalordelvector[1]9>a[3:5]#valoresdelterceroalnoveno[1]91625>a[c(1,3,10)]#valoresconposicionesdeterminadas[1]19100>a[-1]#seeliminaelprimervalor[1]49162536496481100121144169196225>a[c(-1,-3,-5,-7)]#seeliminanvariosvalores[1]416366481100121144169196225>a[a>100]#valoresquecumplenunacondición[1]121144169196225>b<-c("A","B","C","C","D","E")>b[b>"C"]#tambiénconcaracteres[1]"D""E"1. Introducción a R 1-21Subgrupos[] : extrae uno o varios elementos, misma clase [[]] :extrae un elemento de un dataframe o lista, puede ser de diferente clase $: extrae elementos de una variable con un cierto nombre de un dataframe o una lista Se pueden extraer subgrupos o elementos particulares de otras estructuras de datos. Gran utilidad.>a<-matrix(1:12,nrow=3,ncol=4)>a[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912>a[2,3]#2ªfila,2ªcolumna[1]8>a[[2,3]][1]8>a[2,]#2ªfila[1]25811>a[,3]#3ªcolumna[1]789Para una matriz se usan dos subíndices (fila, columna):(los resultados son vectores, no matrices)Estructuras de datos

>ind<-matrix(c(1:3,3:1),nrow=3,ncol=2)>ind#matrixauxiliarparalosíndicesi,j[,1][,2][1,]13[2,]22[3,]31>a[ind]<-0#seponena0losíndicesespecificados>a#en'ind'(1,3),(2,2),(3,1)[,1][,2][,3][,4][1,]14010[2,]20811[3,]069121. Introducción a R 1-22Subgrupos (II)Pueden accederse a elementos de una matriz con índices almacenados en matrices auxiliares:>gal<-list(name="NGC3379",morf="E",colours=c(0.53,0.96))>gal[3]#devuelveeltercerelementocomounalista$colours#conunelementollamado"colours"[1]0.530.96>gal["colours"]#hacelomismo$colours[1]0.530.96>gal[[3]]#accedealtercerelementodelalista[1]0.530.96#ydevuelvesololasecuencia>gal[["colours"]]#hacelomismo[1]0.530.96>gal$colours#elementoconelnombre'colours'[1]0.530.96#(igualquecon[[]])>gal$colours[1][1]0.53>gal[[c(3,1)]][1]0.53>gal[[3]][[1]][1]0.53>gal[c(3,1)]$colours[1]0.530.96$name[1]"NGC3379"Para extraer recursivamente un elemento:Nótese la diferencia entre []y [[]]Para extraer elementos de una lista: Estructuras de datos

>gal<-list(name="NGC3379",morf="E",colours=c(0.53,0.96))>gal$na[1]"NGC3379">gal[["na"]]NULL>gal[["na",exact=FALSE]][1]"NGC3379"1. Introducción a R 1-23Subgrupos (III)Los nombres de las variables pueden aproximarse a sus primeros caracteres:Ejemplo de extracción de elementos de un dataframe:>airquality#dataframeenlalibreríadeR>airquality[1:5,]OzoneSolar.RWindTempMonthDay1411907.467512361188.0725231214912.6745341831311.562545NANA14.35655>class(airquality[1:5,])[1]"data.frame">airquality[1,1][1]41>airquality[[1,1]][1]41>airquality[1,]OzoneSolar.RWindTempMonthDay1411907.46751>class(airquality[1,])[1]"data.frame">as.numeric(airquality[1,])[1]41.0190.07.467.05.01.0>airquality$Ozone#extraeunacol.enunvector[1]41361218NA2823198NA7[12]16111418143463011111[23]432NANANA234511537NANA[34]NANANANA29NA7139NANA23[45]NANA2137201213NANANANA[56]NANANANANANA1354932NA64[67]4077979785NA1027NA748[78]3561796316NANA801082052[89]8250645939916783566122[100]89110NANA442865NA225923[111]3144219NA4516873NA76118[122]8485967873914732202321[133]244421289134618132416[144]13233671430NA141820>class(airquality$Ozone)[1]"integer"Estructuras de datos

>newdataframe<-merge(dataframe1,dataframe2,by="variable_ancla")>newdataframe<-cbind(dataframe1,dataframe2)1. Introducción a R 1-24Subgrupos de un datasetFusionando datasets: Es necesario tener una variable común que sirva de ancla: Añadiendo filas: (deben tener el mismo número de variables): >newdataframe<-rbind(dataframe1,dataframe2)>new<-dataframe[c(n1,n2)]#seleccionandovariables>new<-dataframe[c("name1","name2",...)]>new<-dataframe[c(-n1,-n2)]#excluyendovariablesSeleccionando o excluyendo variables: Seleccionando elementos de acuerdo con un criterio según las variables: >new<-dataframe[which(dataframe$x1>0&dataframe$x2<10),]Función subset(dataframe,subset,select)(subset=condiciones para mantener los elementos, select=variables que se extraen)>subset(dataframe,age>35|age<24,select=c("name1","name2")>subset(dataframe,gender=="M",select=name1:name2)Extrayendo muestras aleatorias: >new<-dataframe[sample(1:nrow(dataframe),n,replace=FALSE),](sample extrae n números aleatorios)< <= > >= == != !x (not x) x|y (x ó y) x&y (x e y) isTRUE(x)Estructuras de datos

>a<-c(0:2,NA,NA,5:7)>aa<-a[!is.na(a)]#"!"indicanegación>aa#delafunción[1]012567#NuevovectorsinNAs1. Introducción a R 1-25Subgrupos: eliminando NAsEliminando NAs con la función is.na():>a<-c(1,2,3,NA,5,NA,7)>b<-c("A","B",NA,"D",NA,"E","F")>valsok<-complete.cases(a,b)>valsok#vectorlógicoconlasposicionessinNAs[1]TRUETRUEFALSEFALSEFALSEFALSETRUE>a[valsok][1]127>b[valsok][1]"A""B""F"Para eliminarlos de vectores multidimensionales: complete.cases>airquality>airquality[1:7,]OzoneSolar.RWindTempMonthDay1411907.467512361188.0725231214912.6745341831311.562545NANA14.35655628NA14.966567232998.66557>valsok<-complete.cases(airquality)>airquality[valsok,][1:7,]OzoneSolar.RWindTempMonthDay1411907.467512361188.0725231214912.6745341831311.562547232998.665578199913.85958981920.16159Para dataframes:>newdata<-na.omit(airquality)También con:Estructuras de datos

1. Introducción a R 1-26Algunas operaciones básicas>a<-c(7+4,7-4,7*4,7/4)>a[1]11.003.0028.001.75>length(a)#longituddeunvector[1]4>dim(b)#Dimensióndeunobjeto>c(min(a),max(a))#valoresmínimoymáximo[1]1.7528.00>which.min(a)#índicedelmínimo[1]4>which.max(a)#índicedelmáximo[1]3>sort(a)#ordenademenoramayor[1]1.753.0011.0028.00>sum(a)#sumadelosvalores[1]43.75>prod(a)#productodelosvalores[1]1617>cumsum(1:10)#sumaacumulativa[1]13610152128364555Las operaciones se pueden vectorizar (gran flexibilidad):>a<-seq(10,30,10)>b<-seq(1:3)>a+b[1]112233>a*b[1]104090>a/b[1]101010>a>5[1]TRUETRUETRUE>b==2[1]FALSETRUEFALSEGran cantidad de funciones disponibles: exp(),sin(),cos(),tan(),log(),log10(),beta(a,b),gamma(x), etc>m1<-matrix(1:9,3,3)>m2<-matrix(11:19,3,3)>m1*m2#productoelementoaelemento[,1][,2][,3][1,]1156119[2,]2475144[3,]3996171>m1%*%m2#productodematrices[,1][,2][,3][1,]150186222[2,]186231276[3,]222276330Operaciones básicas

1. Introducción a R 1-27Más operaciones con objetosCombinando objetos:•c(object1,object2): combina objetos secuencialmente en un vector •cbind(object1,object2): combina objetos en columnas sucesivas •rbind(object1,object2): combina objetos en filas sucesivas•head(object): muestra las primeras líneas •tail(object1): muestra las últimas líneas •ls(): lista objetos •rm(object1,object2): elimina objetosEditando un objeto: desde RStudio o con fix(object)Comprobar el tipo de un objeto (devuelve TRUE o FALSE) •is.numeric(...)•is.character(...)•is.vector(...)•is.matrix(...)•is.data.frame(...)•is.factor(...)•is.logical(...)Cambiar el tipo de un objeto •as.numeric(...)•as.character(...)•as.vector(...)•as.matrix(...)•as.data.frame(...)•as.factor(...)•as.logical(...)>a<-c(5,8,2,1,3)>order(a)#devuelvelasposiciones[1]43512#deloselementosenorden>sort(a)#ordenaloselementos[1]12358Ordenado los datos:Operaciones básicas

1. Introducción a R 1-28Programando en R: estructuras de control>if(cond)expr>if(cond)cons.exprelsealt.exprNormalmente las instrucciones se ejecutan secuencialmente. Con las estructuras de control se pueden repetir instrucciones o alterar su secuencia dependiendo de condiciones:Ejecución condicional:Repeticiones y bucles:>for(nameinexpr_1)expr>while(condition)expr>repeatexprSe pueden usar varias estructuras aninadas con {...}for(xinseq(-3,3)){if(x<0){print("CasoA:")y<-sqrt(-x)cat("y=",y,"\n")}else{print("CasoB:")y<-sqrt(x)cat("y=",y,"\n")}}ejemplo:Flujo de control: comandos para interrumpir el flujo y alterar las estructuras anteriores:break : sale de un bucle for, while o repeat next : interrumpe la iteración en curso y avance al siguiente índice return: devuelve un valor y sale de una funciónEstructuras de control

1. Introducción a R 1-29Lectura y escritura de datosGALAXYmorfT.RC3U-BB-VNGC1357Sab20.250.87NGC1832Sb4-0.010.63NGC2276Sc5-0.090.52NGC3245S0-20.470.91NGC3379E-50.530.96NGC1234Sab3-0.560.84NGC5678E-40.450.92R puede importar datos de numerosas fuentes: paquetes estadísticos, bases de datos, ficheros de texto, binarios, hojas de cálculo, teclado, etc.Ej. fichero galaxies.datLectura de ficheros en ASCII>gal<-read.table("galaxies.dat",header=TRUE)(con cabecera). Los datos se almacenan en un dataframe:>class(gal)[1]"data.frame">names(gal)[1]"GALAXY""morf""T.RC3""U.B""B.V">gal$morf#lascadenasdetextoseconvierten[1]SabSbScS0E#enfactoresLevels:ES0SabSbSc>options(stringsAsFactors=FALSE)#evitándolo>gal<-read.table("galaxies.dat",header=TRUE)>gal$morf[1]"Sab""Sb""Sc""S0""E">tapply(gal$U-B,gal$morf,mean)#colormedioparaES0SabSbSc#cadatipo0.4900.470-0.155-0.010-0.090Ver: http://cran.r-project.org/doc/manuals/R-data.pdfLectura y escritura de datos

1. Introducción a R 1-30Lectura y escritura de datos (II)Se puede especificar el separador:Lectura de ficheros desde excel:n es el número de página con los datos>a<-matrix(data=scan("numbers.dat",0),ncol=3,byrow=TRUE)Read36items>gal<-read.table("file.dat",sep="...",header=TRUE)Si el separador es una coma puede usarse directamente:>gal<-read.csv("file.csv",header=TRUE)Pueden convertirse de xls a ficheros delimitados por "," y usar read.csv, o:>gal<-read.xlsx("file.xlsx",n)Para ello es necesario tener instalado el paquete xlsx (ver más adelante)Si el fichero sólo contiene números, puede leerse directamente a una matrizSi no se especifica ncol, se lee a un vector unidimensional>a1<-matrix(data=scan("numbers.dat",0))Read36itemsPuede especificarse la clase de datos para cada columna:>gal<-read.table("galaxies.dat",header=TRUE,colClasses=+c("character","character","integer","numeric","numeric"))Lectura y escritura de datos

1. Introducción a R 1-31Lectura y escritura de datos (III)Escritura de datos:>#generamosunosvectoresnuméricosdeinterés>x<-seq(-5,5)>y<-x^3>lista.output<-data.frame(x=x,y=y)> write.table(lista.output, file="ejemplo1.txt")>#elficherogeneradotieneetiquetasparacadafila> write.table(lista.output, file="ejemplo2.txt",row.names=FALSE)>#sinetiquetasparacadafilaLectura y escritura de datosComandos write.table y write.csv"x""y""1"-5-125"2"-4-64"3"-3-27"4"-2-8"5"-1-1"6"00"7"11"8"28"9"327"10"464"11"5125ejemplo1.txt"x""y"-5-125-4-64-3-27-2-8-1-10011283274645125ejemplo2.txt>#Lectura>lista.input <- read.table("ejemplo1.txt")>#interpretabienlaprimerafilacomocabecerayaquetieneesafilatieneunacolumnamenos> lista.input <- read.table("ejemplo2.txt", header=TRUE)>#enestecasohayquedecirquelaprimerafilaescabeceraPara que en la lectura identifique bien la cabecera:write.csv : igual pero separa las columnas con comas (u otro separador)>save(objectlist,file="filename")#guardaobjetosenbinario>save(objectlist,file="filename",ascii=TRUE)#enascii>save.image("filename")osave.image()#guardaespaciodetrabajo>load("filename")#cargaespaciodetrabajo

1. Introducción a R 1-32Paquetes y ejemplos en RR tienen muchos ejemplos y cientos de paquetes especializados. Ver: http://cran.r-project.org/web/packages/>library(help=xlsx)Lista de paquetes instalados: Lista de paquetes cargados:Ayuda sobre un determinado paquete: Para usar un paquete hay que 1) instalarlo, y 2) cargarlo:>install.packages("xlsx")#1>library("xlsx")#2Todo este proceso se puede hacer de forma muy sencilla en la ventana "Packages" de RStudioLos datos disponibles en cada momento pueden verse con: >data(package="cluster")Y los correspondientes a un determinado paquete con:>data()>library()>search()Paquetes y ejemplos en R

1. Introducción a R 1-33GráficasEl proceso para realizar un gráfico será:>#1.Abrirunasalidagráfica>#NoesnecesariodesdeRStudio>pdf(myfile.pdf,width=10.,height=7.1)>postscript(myfile.ps)>png(myfile.png)>jpeg(myfile.jpeg)>#2.Realizarelgráfico>plot(x,y)>#3.Cerrarlasalidagráfica>#NoesnecesariodesdeRStudio>dev.off()paquete básico graphicsplot: nueva gráfica, ej. diagrama de dispersión lines: añade líneas a un gráfico abierto abline: añade una línea recta segments: añade segmentos points: añade puntos a un gráfico abierto polygon: añade polígonos arrows: añade flechas text: añade texto title: añade títulos a ejes, gráfico, etc. axis: añade y modifica propiedades de los ejes hist: histogramaTipo de gráfico: >plot(x,y,type="p")#sólopuntos(default)>plot(x,y,type="l")#sólolíneas>plot(x,y,type="b")#líneasypuntos>plot(x,y,type="s")#tipoescalera>plot(x,y,type="h")#histograma>plot(x,y,type="n")#nodibujalosdatosAñadiendo texto: >plot(x,y,main="tituloprincipal",sub="subtitulo",+xlab="títuloenx",ylab="tituloeny")Cambiando los límites:>plot(x,y,xlim=c(xmin,xmax),ylim=c(ylim,ymax))>plot(x,y,xlab=expression(sum(hat(omega)[j]/N,j=1,10)))Anotaciones matemáticas:ˆ

j /N 1 10

Gráficas

1. Introducción a R 1-34Gráficas: parámetrosSímbolos (pch=): >par()#Muestralosvaloresdelosparámetros>par("pch")#Muestraelvalordeundeterminadoparámetro>par(pch=2,optionname=valor)#Cambiaelvalordelosparámetrosparalasesión>?par#ayudaVarias gráficas en la misma página:>par(mfrow=c(nºfilas,nºcolumnas))#llenalosgráficosporfilas>par(mfcol=c(nºfilas,nºcolumnas))#llenalosgráficosporcolumnas>par(mfrow=c(1,1)#vuelvealdefectopch: tipo de símbolo cex: tamaño de símbolo (1=def, 1.5=50% mayor, etc) lty: tipo de línea lwd: anchura de línea (1=def, 1.5=50% mayor, etc) font: fuente (1=plain, 2=bold, 3=italic, etc.)Pueden modificarse los colores de los símbolos 21:25 con col() (para el contorno) y bg() (para el fondo) def.Tipo de líneas (lty=) 1. continua 2. discontinua (rayas) 3. puntos 4. punto-raya 5. rayas largas 6. punto-raya largacex=cex.axis=cex.lab=cex.main=cex.sub=Cambiando parámetros de parte del gráfico:Gráficas

1. Introducción a R 1-35Gráficas: colores>colors()#listadelos657coloresactivos>demo(colors)#demostraciónver: http://research.stowers-institute.org/efg/R/Color/Chart/index.htm >col=n#de1a657>col="colorname">col=rgb(n1,n2,n3)>col=hsv(n1,n2,n3)>plot(x,y,col=...)Especificar un color: Paletas de color con n colores contiguos:col=col.axis=col.lab=col.main=Cambiando parámetros de parte del gráfico:Se puede interpolar entre colores con: colorRamp y colorRampPalettecol=rainbow(n)col=heat.colors(n)col=terrain.colors(n)col=topo.colors(n)col=cm.colors(n)col=gray(1:n/n)Gráficas

1. Introducción a R 1-36Gráficas - demos>demo(graphics)Gráficas

1. Introducción a R 1-37Gráficas - demos>demo(image)Gráficas

1. Introducción a R 1-38Gráficas - demos>demo(persp)Gráficas

1. Introducción a R 1-39Gráficas - demos>install.packages("car")>library(car)>attach(mtcars)>scatter3d(wt,disp,mpg)R permite incluso representaciones tridimensionales interactivasGráficas

1. Introducción a R 1-40ReferenciasR in action, Robert I. Kabacof, Manning Publications Introductory Statistics with R, Peter Dalgaard, SpringerData Analysis and Graphics using R , John Maindonald & W. John Braun, Cambridge University PressThe R Book, Michael J. Crawley, Ed. John Wiley & SonsR for dummies, Joris Meys, Andrie de VriesBeginning R: An Introduction to Statistical Programming, Larry Pace, ApressBeginning R: The Statistical Programming Language, Mark Gardener, Wrox+ Manuales y cursos en internetR manuals: https://cran.r-project.org/manuals.html An Introduction to R: https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf R tutorial: http://www.cyclismo.org/tutorial/R/ Code School. Try R: http://tryr.codeschool.com Curso Univ. Rochester: http://www.rochester.edu/college/psc/thestarlab/help/rcourse/R-Course.pdf Center for Astrostatistics: http://astrostatistics.psu.edu Gráficos simples con R: http://www.harding.edu/fmccown/r/ R Reference Card: http://statmaster.sdu.dk/bent/courses/ST501-2011/Rcard.pdf Comparación de comandos en MATLAB,etc: http://mathesaurus.sourceforge.net/matlab-python-xref.pdfReferencias

1. Introducción a R 1-41Referenciashttps://courses.edx.org/courses/course-v1:Microsoft+DAT204x+6T2016/infohttps://courses.edx.org/courses/course-v1:UTAustinX+UT.7.11x+3T2016/infohttps://www.coursera.org/learn/intro-data-science-programacion-estadistica-rhttps://www.coursera.org/learn/r-programming

Fraccionpuntos=

areacircu loradio1 areatotal N 4

1. Introducción a R 1-42Ejemplo de script: cálculo de Estimamos el valor de utilizando puntos aleatorios generados en el interior de un cuadrado. Se calcula la fracción de puntos dentro de un círculo de radio unidad frente al número de puntos en un cuadrado de lado 2. >pirandom<-function(n)#Definimosunafunción+{+x<-runif(n,-1,1)#nnºaleatoriosentre-1y1+y<-runif(n,-1,1)+plot(x,y)+r<-sqrt(x*x+y*y)#distanciaalcentro+rinside<-r[r<1]#dentrodeuncírculoderadio1?+print(4*length(rinside)/n)#estimacióndepi+}Creamos un script pirandom.R y se graba en el directorio de trabajo (menu File/Save As en Rstudio)>source("pirandom.R")>pirandom(100)[1]3.08>pirandom(1000)[1]3.144Se carga el script y se corre para dos números de puntos:Ejemplo

quotesdbs_dbs6.pdfusesText_11
[PDF] conditionals exercises pdf with answers

[PDF] conditions d admission sciences po paris

[PDF] conditions d'éligibilité du président de l'assemblée nationale ivoirienne

[PDF] conditions générales d'abonnement orange internet

[PDF] conditions pour ouvrir un laboratoire d'analyses médicales

[PDF] conditions pour ouvrir une ecole prive en algerie

[PDF] conditions tarifaires air algerie

[PDF] conduire après opération cataracte

[PDF] confectionner une chemise homme

[PDF] conférence de bandung

[PDF] conferences in seattle washington 2013

[PDF] configuration mail sfr android

[PDF] configuration messagerie ac-poitiers

[PDF] configuration messagerie ac-versailles

[PDF] configuration routeur adsl maroc telecom