Anda di halaman 1dari 10

ApuntesR

ManipulacionesBasicas
Lecturayescrituradedatos
Concatenacin.Introduccinbsicadeunconjuntoconcatenadodevalores
data4<c(1.20,1.82,1.93,2.04,2.30,2.33,2.34,2.47,2.51,2.55,
2.64,2.76,2.77,2.90,2.91,3.20,3.22,3.39,3.59,4.02)

Lecturadetextotabulado.Paraestosecreaunatablaendondeenlaprimeralineaseponenlos
nombresdelasvariablesseparadosporespaciosotabulacionesyluegoslosvalores,separadosdela
mismamaneraquelasanteriores.Ej:
ID
01
02
03
...

Puntaje
21
1
12
1
14
2

Grupo

Estosdatospuedenleersedelsiguientemodo:
>data1<read.table(file.choose(),header=TRUE)

Parapresentarunpequeoresumendelosdatossepuedeprocedercomosigue
>head(data1)

paraleerunavariablesepuede
>data1$Puntaje

Tambinsepuedeadjuntarlosdatos
>attach(data1)
>data1

Peropuedequelasvariablesenmascaren(ooculten)otrasvariablesqueyaseencontrabanenel
entorno.
Otrosmodosdeintroducciondedatos
>edit(data1)
>newfile<edit(data.frame())
>write.table(data1,file=newfile.dat,row.names=FALSE)

Elultimocomandoguardaelarchivoeneldirectorioactualsiesquenoseespecificauno.
FuncionesBsicas
Imprimirunvalor.Esutilenelcasodeescribiruncodigo.Elejemploguardalamediaenla
variablexbaryluegoimprimeelvalor.
>xbar<mean(x)
>print(xbar)
[1]8.571429

Otrasfuncionesbasicas.
>length(x)

#devuelvelalongituddeunconjuntodedatos

>var(x)
>sd(x)
>hist(x)#ploteaungrfico.

Paraplotearunafuncinusarplot(funcion,desde,hasta):
>curve(1/x,1,1)

ElementosfundamentalesdeR
VectoresyAritmtica
Estructuradedatos

Vectoresyasignaciones.Rrealizaoperacionesbasicamentesobreestructurasdedatosconnombre,
enestecasoserealizaunaasignacindeunvectornumericoalavariablex,elvectorescreado
mediantelafuncionc():
x<c(10,4,5.6,3.1,6.4,21.7)

Unvectornmerico(hayotrostipos)esunconjuntoordenadodenumeros,lafuncinc() puede
tomarcomoargumentosunnumeroarbitrariodevectoresydevuelvelosvectoresconcatenados.Un
nmeroqueapareceporsmismoesconsideradocomounvectordelongituduno.
Operacionesconvectores

Reciclado.Enlasopreacionesconvectores,elvectormaspequeoesreciclado,hastacumplircon
lalongituddelvectormslargo.Porej.conunaxde5elementosyunayde11,elvectorxserepite
2.2veces,ylosvectoresunitarios(2y1)11veces:
>v<2*x+y+1
>v
[1]32.217.810.320.266.121.822.612.816.950.843.5

Operaciones.Losoperadoresaritmticossonlosusuales+, -, *, / y ^paraelevarauna
potencia.Ademstodaslasfuncionesaritmeticascomunesestndisponibleslog, exp, sin cos,
tan, sqrt,etc.maxyminseleccionanloselementosmayoresymenoresdeunvector
respectivamente.rangedevuelveunvectordelongituddos.lengtheselnumerode,sumlasuma
yprodelproductodeloselementosdeunvector.
mean,devuelvelamediadeunvector,loqueesigualque:
>sum(x)/length(x)

yvar,quedevuelvelavarianzamuestralqueesiguala:
>sum(xmean(x))^2/length(x)1

Sielargumentodevar()esunamatrizdenpelvalordevueltoesunamatrizdecovarianza
muestralppobtenidaconsiderandolasfilascomovectoresmuestralespvariados.
Paraordenarsepuedeusar,sort(x),quedevuelvelosvaloresordenadosdeformacreciente,o
order() osort.list().
pmax()ypmin()devuelvenunvectorquecontieneencadaelementoelelementomaslargo(o

chico)enesaposicindecadaunodelosvectoresprovistoscomoargumentos.

Paratrabajarconnumeroscomplejoshayqueproveerunapartecomplejaexplcita,porej.:sqrt(17+0i).

Generarsequencias
1:30equivaleac(1,2,...,30)eloperadordospuntostienelamayorprioridaddentrode
cualquieroperacin,peronomayorqueeloperadordepotenciacin(^).Tambinpuedeusarse
alrevez30:1.

Parasecuenciasmaselaboradassepuedeutilizarseq():
>seq(1,3,by=.2)
[1]1.01.21.41.61.82.02.22.42.62.83.0
>seq(length=11,from=1,by=.2)
[1]1.01.21.41.61.82.02.22.42.62.83.0
Tambinsepuedeusaralong=vectorquedeberaserelnicoparametroycrealasecuencia
1,2,...,length(vector)ounasecueniavacasielvectoresvaco.

Tambinsepuedeusarrep(),pararepetirunobjeto:
>x<1:3
>rep(x,times=3)
[1]123123123
>rep(x,each=5)
[1]111112222233333

Vectoreslgicos

EsunvectorconloselementosconvaloresTRUE,FALSEyNA(notavailable).Losdos
primerospuedenabreviarsecomoToF.Losvectoreslgicossongeneradosporcondiciones:
>2>3
[1]FALSE

Puedenusarselosoperadoreslgicos<, <=, >, >=, ==paraigualdadperfectay!=para


inequalidad.Sic1yc2sonexpresioneslgicasentoncesc1 & c2essuinterseccin(y),c1 | c2
essuunion(o),y!c1eslanegacindec1.
Losvectoreslgicospuedenusarseenaritmeticaordinaria,encuyocaso,soncoercidosavectores
numericos,FALSEsevuelve0yTRUEsevuelve1.Hayquetenerencuentaquetienenuna
precedenciaaritmeticainferiorala+yala-,porlocual:
>1+2>1
[1]TRUE
>1+(2>1)
[1]2

Valoresperdidos

CuandounvalornoseencuentradisponibleoseencuentraperdidosedenominaNA,cualquier
operacinsobreunNAesunNA.Lafuncinis.na(x)devuelveunvectordelamismalongitudcon
elementosconvaloresTRUEsielmismoelementoenxesNA,delocontrarioelelementoes
FALSE:
>x<c(1,2,NA)
>is.na(x)
[1]FALSEFALSETRUE

NAnoesunvalorporloque:
>x==NA
[1]NANANA

OtrotipodevalorperdidoeselNot a Number NaN,esdecirunnonumero:


>0/0
[1]NaN

Hayqueaclararqueis.na(x)esTRUEtantoparaNAcomoparaNaN,is.nan(x)soloesTRUEpara
NaN.
>x<c(x,NaN)
>is.na(x)
[1]FALSEFALSETRUETRUE
>is.nan(x)
[1]FALSEFALSEFALSETRUE

Vectoresdecaracteres

Lascadenassedenotanmediante'mi cadena' omi cadena.Enteorasepuedenusarescapes


estiloc,porej.\nparaunanuevalinea.Losvectoresdecaracterespuedenserconcatenados
mediantelafuncinc().
Lafuncinpaste()tomaunnumeroarbitrariodeargumentosylosconcatenaunoporuno,yson
coercidosacadenasdecaracteres.Susargumentossonseparadospordefectoporunespacioen
blancoperoestopuedecambiarsemedianteelparametrosep=string.
>paste(c("x","y"),1:10,sep="")
[1]"x1""y2""x3""y4""x5""y6""x7""y8""x9""y10"

Vectoresindices;seleccionandoymodificandosubconjuntosdeunconjuntodedatos

Subconjuntosdeloselementosdeunvectorpuedenserseleccionadosaadiendoalnombredel
vectorunvectorndiceentreparentesiscuadrados.Masgeneralmentecualquierexpresinque
retorneunvectorpuedetenersubconjuntosdesuselementeosseleccionadosmedianteunvector
indice.
Dichosvectoresnidcepuedenserdecuatrotiposdistintos.
1. Vectoreslgicos.Enestecasoelvectorndicedebeserdelamismalongitudqueelvectora
seleccionar.ValoresTRUEdelvectorsonseleccionasyvaloresFALSE,sonignorados.
>x<1:10
>x[x>7]
[1]8910
>x<sqrt(x5)
Mensajesdeavisoperdidos
Insqrt(x5):SehanproducidoNaNs
>(x+1)[(!is.na(x))&x<2]
[1]1.0000002.0000002.4142142.732051

2. Vectordecantidadesintegralespositivas.Enestecasolosvaloresdelvectordebencaer
enelconjunto{1,2,,length(x)}.Loselementoscorrespondientesdelvectorson
seleccionadosyconcatenados,eneseorden.Losvectoresndicepuedenserdecualquier
longitud:
>x[6]
[1]6
>x[8:3]
[1]876543

>c("x","y")[rep(c(1,2,2,1),times=4)]
[1]"x""y""y""x""x""y""y""x""x""y""y""x""x""y""y""x"

3. Unvectordecantidadesintegralesnegativas.Dichovectorespecificalosvaloresaser
exluidos:
>x<seq(20,21,by=.1)
>x[(3:7)]
[1]20.020.120.720.820.921.0

4. Unvectordecadenas.Estaposibilidadsoloaplicacuandoelvectortieneunatributo
nombres(names)paraidentificarsuscomponentes.Enestecasounvectordenombres
puedeserusado
>notas<c(6,8,8.5,3,7,10,6.5)
>names(notas)<
c("Juan","Pedro","Maria","Yohana","Victoria","Julio","Sebastian")
>notas[c("Pedro","Sebastian","Yohana")]
PedroSebastianYohana
8.06.53.0

Unaexpresiontambienpuedeaparecerenlaseccionderecepcindelasasignaciones:
>x<1:10
>x[3:7]<mean(x)
>x
[1]1.02.05.55.55.55.55.58.09.010.0

Otrotiposdeobjetos

Matricesoarreglossongeneralizacionesmultidimencionalesdelosvectores.Deechoson
vectoresquepuedenserindexadospordosomsindicesyvanaserimpresasenciertas
formasespeciales.

Factoresproveenunmodocompactodemanejardatoscategoricos.

Listassonunaformageneraldelosvectoresenlascualeslosvarioselementosnonececitan
serdelmismotipo,ysonasuvez,ellosmismosvectoresolistas.Sonunmodoconveniente
dedevolverlosresultadosdecomputacionesestadisticas.

Dataframessonestructurastipomatrices,enlascualeslascolumnaspuedenserde
diferentestipos.

Funciones,sonellasmismasobjetosenRquepuedenserguardadasenelespaciodetrabajo
delproyecto.

LosObjetos
Modo.Losvectoressonobjetosatmicospuestosquetodossuselementossondelmismomodo:
numeric,complex,logical,characteryraw.
Losvectoresvaciosigualmentetienenmodo.Porej.character(0)ynumeric(0).
Laslistassondemodolist.Sonsecuenciasordenadasdeobjetosquepuedenserdecualquiermodo.
Debidoaquepuedentenerotraslistassonobjetosrecursivos.
Lasotrasestructurasrecursivossonaquellasdemodofunctionyexpression.

Parasaberelmododeunobjetosepuedeusarmode(x),yparasabersulongitudlength(x),otras
propiedaddelosobjetospuedehallarsemedianteattributes(object).
Muchoscambiospuedenforzarsemediantefuncionesdelaformaas.algo():
>x<seq(1,5,by=.5)
>as.character(x)
[1]"1""1.5""2""2.5""3""3.5""4""4.5""5"
>as.integer(x)
[1]112233445

Unobjetovaciopuedecrearsemediantelafuncionmodo():
>x<numeric()

Yluegopuedemodificarsesudimensinagregandosealgundatoaalgunindicefueradesurango
anterior(0)porlocualseresimensionaautomaticamente.
>x[3]<1
>length(x)
[1]3
>x[6]<2
>x
[1]NANA1NANA2

Parareducirlalongitudsepuedesimplementeasignar.
>x<1:10
>x<x[2*1:5]
>x
[1]246810

Tambiensepuedemodificardirectamentelalongitudmediante.
>length(x)<7
>x
[1]246810NANA
>length(x)<3
>x
[1]246

Obteneryasignaratributos

Lafuncionattributes(x)retornaunalistadetodoslosatributosnointrinsecos,actualmente
definidosparaelobjetox.Unatributoespecificopuedeobtenersemedianteattr(x,nombrede
atributo),paraasignarunatributosepuede:
>z<1:100
>attr(z,"dim")<c(10,10)
Lafuncionclass(x) devuelvelaclasedeunobjeto,todostienenuna.Paralosvectoresestaes
simplementeelmodo.Valoresposiblessonlist,matrix,array,factor,y
data.frame.Pararemovertemporalmentelaclasedeunobjetosepuedeusarunclass().

Factores
Unfactoresunobjetovectorutilizadoparaunaclasificaciondeloscomponentesdeotrosvectores
delamismalongitud.Unfactorsecreausandolafuncinfactor().
>Groupf<factor(Group)

paraaveriguarlosnivelesdeunfactorsepuedeusarlafuncinlevels().
>levels(Groupf)
[1]"1""2"

paraaplicarunafuncinasubconjuntosdeunvectorsepuedeusarlafuncintapply():

>medias<tapply(Score,Groupf,mean)
>medias
12
9.6363646.583333

Lafuncinordered()essimilarafactorsoloquealmacenaelordendelosfactoresprovistos,parala
mayoradelospropositossonlomismo,perohacenladiferenciaencuantoasuusoenmodelos
lineales.
ArraysyMatrices
Unarrayesunvectorcondimensiones,unamatrizunarraydedosdimensiones.Unvectorpuede
serusadocomounarraysitienenunvectordedimensioncomosuatributodim.Unvectorde
dimensionesunvectordeenterosnonegativos,lalongituddelvectorindicaelnumerode
dimensiones,ylasdimensionessonindexadasdesdeunohastalosvaloresprovistosenelvectorde
dimensin.
>z<1:1500
>dim(z)<c(3,5,100)
>z[1,1,1]
[1]1
>z[2,1,1]
[1]2
>z[1,2,1]
[1]4
>z[1,1,2]
[1]16

Losvaloressonasignadosdemodoordendecolumnamayorconlosprimerosindices
moviendosemasrapidoquelosdems.Lalongituddelvectoradimensionardebecoincidirconel
productodelaslongitudesdelasdimensiones.Losarraypuedenserunidimensionales,
generalmentesontratadosigualquelosvectores,perolasexcepcionespuedencausarconfusiones.
Indexaciondelosarrays

Loselementosdeunarraypuedenserrefernciadosdandoelnombredelarrayylosindicesdelas
correspondientesdimensionesencerradosencorchetescuadrados(z[3,2,59]).Tambinvarias
subseccionesdeunarraypuedenespecificarseproveyendovectoresindicesenvezdevalores
unicos,aldejarenblancounadimensionsetomatodoelrangodedichadimensin.
z[1,2,1]
[1]4
>z[1,2,c(1,2)]
[1]419
>z[1,2,]
[1]4193449647994109124139154169184
199214
[16]229244259274289304319334349364379394409
424439
[31]454469484499514529544559574589604619634
649664
[46]679694709724739754769784799814829844859
874889
[61]904919934949964979994100910241039105410691084
10991114
[76]1129114411591174118912041219123412491264127912941309
13241339
[91]1354136913841399141414291444145914741489
>z[1,2,z[1,2,]<1000]
[1]4193449647994109124139154169184199214229244

259274
[20]289304319334349364379394409424439454469484499514529
544559
[39]574589604619634649664679694709724739754769784799814
829844
[58]859874889904919934949964979994

Siseusaunsoloindice,entoncesloscorrespondientesvaloresdelvectorsonprovistos,ignorando
lasdimensiones.Peroestonoocurresielindiceniconoesunvectorsinounarrayensmismo.
Matricesndices

Envezdeproveervectoresindicesindividualesparacadadimenciondeunarray,sepuedeproveer
unamatrizindicecontantascolumnascomodimensionestieneunarray,tantoparaasignar,como
paraobtenerelementos.
>miarray<1:(5*5)
>dim(miarray)<c(5,5)
>MatrizIndice<c(1:5,1:5)
>dim(MatrizIndice)<c(5,2)
>miarray[MatrizIndice]<1
>miarray
[,1][,2][,3][,4][,5]
[1,]16111621
[2,]21121722
[3,]3811823
[4,]4914124
[5,]51015201

Lafuncinarray()

Losarrayssepuedenconstruirdemodoexpeditomediantelafuncionarray(vector_de_datos,
vector_dim).Sielvectordedatosesmenordelorequeridoporlasdimensionesdelarrayentonces
esreciclado.
>miarray<array(1:10,dim=c(5,2))
>miarray
[,1][,2]
[1,]16
[2,]27
[3,]38
[4,]49
[5,]510
>miarray<array(1:5,dim=c(5,2))
>miarray
[,1][,2]
[1,]11
[2,]22
[3,]33
[4,]44
[5,]55

Operaciones

Losarraysdedimensionessimilarespuedenutilizarseenoperacionesaritmeticas.Rrealizalas
operacionesprocediendoenunordenelementoporelemento.

>A<array(1:(5*5),dim=c(5,5))
>B<array((5*5):1,dim=c(5,5))
>D<A+B
>D
[,1][,2][,3][,4][,5]
[1,]2626262626
[2,]2626262626
[3,]2626262626
[4,]2626262626
[5,]2626262626

Elouterproductdeunarray

Unafuncindeposibleutilidadesouterproductquemultiplicatodosloselementosdeunarray
portodosloselementosdelotro,yelresultadoesunarraycuyadimensinesunaconcatenacinde
lasdimensionesdelosarraysusados.Esmassencilloentendersufuncionamientomediantesuuso
envectores.
>a<1:3
>b<4:7
>ab<a%o%b
>ab
[,1][,2][,3][,4]
[1,]4567
[2,]8101214
[3,]12151821
Tambinsepuedeusarlafuncinouter(a,b,*).Donde*puedeircualquierfuncin,por

ejemplo.

>f<function(x,y)sqrt(x^2+y^2)
>x<1:5
>y<11:15
>h<outer(x,y,f)
>h
[,1][,2][,3][,4][,5]
[1,]11.0453612.0415913.0384014.0356715.03330
[2,]11.1803412.1655313.1529514.1421415.13275
[3,]11.4017512.3693213.3416614.3178215.29706
[4,]11.7047012.6491113.6014714.5602215.52417
[5,]12.0830513.0000013.9283914.8660715.81139

Reorganizandodimensionesdearrays

Sepuedeusarlafuncionaperm(a, perm) dondeaesunarrayypermunanuevareorganizacionde


susdimensiones.Ej
>a<array(1:10,dim=c(5,2))
>a
[,1][,2]
[1,]16
[2,]27
[3,]38
[4,]49
[5,]510
>aperm(a,c(2,1))
[,1][,2][,3][,4][,5]
[1,]12345
[2,]678910

Facilidadesparamatrices

t(X):eslatransposiciondeunamatrz

ncol(X);nrow(X):numerodecolumnasy/ofilasdeunamatriz.