Beruflich Dokumente
Kultur Dokumente
Abraham Zamudio
Abril 2020
Introducción
Programación básica en R
1. R
2. Rstudio
? utils::sessionInfo()
? installed.packages()
? ls()
? rm()
? options()
? history()
? q()
1 > 2 + 3
2 > 5 1 # En R s e puede a s i g n a r e l v a l o r a
3 2 # una v a r i a b l e con <− o =
4 > (3 ∗ 8) / (2 ∗ 3) 3 > x <− 8 + 7
5 > 4 4 > x
6 5 > 15
7 > log (12)
8 > 1.07
Una vez que creamos una variable, ya no
9 obtienes la salida directamente (como la
10 > s q r t (121) calculadora), a menos que llames a la
11 > 11 variable en la siguiente lı́nea. Recuerde, las
Del mismo modo, puede variables pueden ser alfabetos,
experimentar varias alfanuméricos pero no numéricos. No
combinaciones de cálculos y puedes crear variables numéricas.
obtener los resultados.
Como puede ver, las dimensiones de una matriz se pueden obtener uti-
lizando el comando dim() o el comando attributes(). Para extraer un
elemento particular de una matriz, simplemente use el ı́ndice. Por ejem-
plo:
1 > my matrix [ ,2] #e x t r a e la segunda columna
2 > my matrix [ ,1] #e x t r a e la primera columna
3 > my matrix [2 ,] #e x t r a e la segunda fila
4 > my matrix [1 ,] #e x t r a e la primera fila
Observación 1
Las variables continuas son aquellas que pueden tomar cualquier
forma, como 1, 2, 3.5, 4.66, etc. Las variables categóricas son aquellas
que toman solo valores discretos como 2, 5, 11, 15, etc. En R, los
valores categóricos están representados por factores. En df, name es
una variable de tipo factor que tiene 4 niveles únicos.
Observación
En R, también puede usar los nombres de los parámetros al llamar a
una función, además de las posiciones. Si tiene una función f (x, y) de
dos parámetros, x e y, llamar a f (5,10) significa llamar a f con el
parámetro x establecido en 5 y el parámetro y establecido en 10.
1 f (5 , 10)
2 f ( x = 5 , y = 10)
3
4 # S i e s p e c i f i c a l o s nombres de l o s p a r a m e t r o s , e l o r d e n
5 # ya no i m p o r t a , p o r l o que o t r a l l a m a d a de f u n c i o n
6 # equivalente seria :
7 f ( y = 10 , x = 5)
8
9 # Puede c o m b i n a r l a s d o s f o r m a s de p a s a r p a r a m e t r o s
10 # a f u n c i o n e s s i e m p r e que c o l o q u e t o d o s l o s p a r a m e t r o s
11 # p o s i c i o n a l e s a n t e s de l o s nombrados .
12 f (5 , y = 10)
Observación
(Verifique la documentación de rev para ver qué está pasando aquı́.
Asegúrese de comprender lo que está haciendo este ejemplo).
help(rev)
Observacion
Sin embargo, un punto importante aquı́, si está acostumbrado a
programar en otros lenguajes: la expresión return() debe incluir los
paréntesis. En la mayorı́a de los lenguajes de programación, puedes
escribir:
1 s q u a r e and s u b t r a c t <− f u n c t i o n ( x , y ) r e t u r n x ∗ ∗ 2 − y
Esto no funciona para R. Inténtalo y obtendrás un error.
1 # E s t o no h a r a nada
2 i f (2 > 3) ” f a l s e ”
3 # Esto siempre se e j e c u t a
4 i f (3 > 2) ” t r u e ”
5 ## [ 1 ] ” t r u e ”
Para expresiones como las que siguen a continuación , donde no altera-
mos el estado del programa al evaluar la expresión, no hay mucho efecto
al evaluar la expresión if. Si, por ejemplo, lo asignamos a una variable,
habrá un efecto.
1 x <− ” f o o ”
2 i f ( 2 > 3 ) x <− ” b a r ”
3 x
4 ## [ 1 ] ” f o o ”
5 i f ( 3 > 2 ) x <− ” baz ”
6 x
7 ## [ 1 ] ” baz ”
Programación básica en R Abraham Zamudio (GMMNS) 41 / 50
Un vistazo rápido a las estructuras de control (iii)
Sentencia IF
Si desea tener efectos para las expresiones TRUE y FALSE, tiene esto:
1 i f ( 2 > 3 ) ” b a r ” e l s e ” baz ”
2 ## [ 1 ] ” baz ”
Si desea nuevas lı́neas en declaraciones if, ya sea que tenga una parte
else o no, necesita llaves. Esto no funcionará:
1 i f (2 > 3)
2 x <− ” b a r ”
Pero esto si
1 i f (2 > 3) {
2 x <− ” b a r ”
3 }
Si desea una función vectorizada, debe usar ifelse (), o puede usar la
función vectorize() para traducir una función que no está vectorizada
en una.
1 maybe s q u a r e <− f u n c t i o n ( x ) {
2 i f e l s e ( x % %2 == 0 , x ∗ ∗ 2 , x )
3 }
4 maybe s q u a r e ( 1 : 5 )
5 ## [ 1 ] 1 4 3 16 5
También hay sentencias while para bucles. Estos se repiten siempre que
una expresión sea verdadera.
1 x <− 1 : 5
2 t o t a l <− 0
3 i n d e x <− 1
4 w h i l e ( i n d e x <= l e n g t h ( x ) ) {
5 e l e m e n t <− x [ i n d e x ]
6 i n d e x <− i n d e x + 1
7 t o t a l <− t o t a l + e l e m e n t
8 }
9 total
10 ## [ 1 ] 15