Fundamentos del lenguaje R
Al aprender un nuevo lenguaje, normalmente se comienza con el programa "¡Hola, Mundo!"; el código del programa "Hello, World!" en R es el siguiente:
Ejemplo (helloworld.R)
print ( myString )
El ejemplo anterior asigna la cadena "Hello, World!" a la variable myString y luego usa la función print() para imprimirla.
Nota:La asignación en R usa la flecha izquierda<-símbolo, aunque algunas versiones nuevas también admiten el signo igual=。
Nota:La extensión de archivo de script más común en R es.R。
Por ejemplo:
hello.R data_analysis.R stock.RAunque.rtambién se puede usar, la corriente principal de la comunidad usa casi exclusivamente .R。
Variables
Los nombres de variables válidos en R están formados por letras, números y puntos.o guiones bajos_compuestos.
Los nombres de variables comienzan con una letra o un punto.
| Nombre de variable | ¿Correcto? | Razón |
|---|---|---|
| var_name2. | Correcto | comienza con un carácter y está compuesto por letras, números, guiones bajos y puntos |
| var_name% | Incorrecto | % es un carácter ilegal |
| 2var_name | Incorrecto | no puede comenzar con un número |
.var_name, var.name |
Correcto | puede comenzar con . pero hay que tener en cuenta que después del punto no puede seguir un número |
| .2var_name | Incorrecto | después del punto no puede seguir un número |
| _var_name | Incorrecto | no puede comenzar con guion bajo _ |
Asignación de variables
En las versiones más recientes de R, la asignación puede usar la flecha izquierda<-, el signo igual=, la flecha derecha->asignación:
Ejemplo
> var.1 = c(0,1,2,3)
> print(var.1)
[1] 0 1 2 3
# usar la flecha izquierda <- para asignar
> var.2 <- c("learn","R")
> print(var.2)
[1] "learn" "R"
# usar la flecha derecha -> para asignar
> c(TRUE,1) -> var.3
> print(var.3)
[1] 1 1
Para ver las variables definidas, se puede usar la funciónls()función:
Ejemplo
[1] "var.1" "var.2" "var.3"
Para eliminar variables, se puede usar la funciónrm()función:
Ejemplo
> print(ls())
[1] "var.1" "var.2"
>
En el capítulo anterior ya hemos aprendido cómo instalar el entorno de programación de R; a continuación, presentaremos la programación interactiva y la programación con script de archivo en R.
Programación interactiva
Solo necesitamos ejecutar el comando en la línea de comandosRpara entrar en la ventana de programación interactiva:
R
Después de ejecutar este comando, se invocará el intérprete de R. Simplemente escribimos el código después del símbolo >.

Para salir del modo interactivo, se puede ingresarq()para salir:
> q() Save workspace image? [y/n/c]: y

Script de archivo
La extensión de archivo de R es.R。
A continuación, creamos un archivo ejemplo-test.R con el siguiente código:
Archivo ejemplo-test.R
print ( myString )
Luego usamos Rscript en la ventana de línea de comandos para ejecutar este script:
Rscript ejemplo-test.R
El resultado es el siguiente:
[1] "EJEMPLO"

Entrada y salida
Salida con print()
print()es la función de salida de R.
Igual que otros lenguajes de programación, R admite salida de números, caracteres, etc.
La instrucción de salida es muy sencilla:
print("EJEMPLO")
print(123)
print(3e2)
Resultado de la ejecución:
[1] "EJEMPLO" [1] 123 [1] 300
R, al igual que node.js y Python, es un lenguaje interpretado, por lo que a menudo podemos usar R como si fuera una línea de comandos.
Si ingresamos solo un valor en una línea, R también lo genera directamente de forma estándar:
> 5e-2 [1] 0.05
¿Por qué el resultado impreso por R tiene
Muchos principiantes ven por primera vez:
[1] 30
y no saben qué significa; este[1]no es un índice de matriz.
[1]Esta línea de salida comienza desde el primer elemento.
Porque R es un lenguaje vectorizado por naturaleza.
Por ejemplo:
x <- c(10,20,30) print(x)
Salida:
[1] 10 20 30
Si el contenido es demasiado largo:
[1] ... [4] ... [7] ...
indica desde qué elemento comienza esta línea.
La función cat()
Si necesitamos concatenar los resultados de salida, podemos usar la funcióncat()función:
Ejemplo
1Suma1es igual a2
cat()La función agrega automáticamente un espacio entre cada dos elementos concatenados.
Enviar contenido a un archivo
R tiene métodos muy variados y convenientes para la salida a archivos.
cat()La función admite la salida directa del resultado a un archivo:
cat("EJEMPLO", file="/Users/ejemplo/ejemplo-test/r_test.txt")
Esta instrucción no produce resultado en la consola, sino que envía "EJEMPLO" al archivo "/Users/ejemplo/ejemplo-test/r_test.txt".
El parámetro file puede ser una ruta absoluta o relativa; se recomienda usar ruta absoluta. El formato de ruta en Windows esD:\\r_test.txt。
cat("EJEMPLO", file="D:\\r_test.txt")
Nota: esta operación es una operación de "escritura sobrescrita"; úsela con cuidado, porque borrará los datos originales del archivo de salida. Si desea "escritura añadida", no olvide configurar el parámetro append:
cat("GOOGLE", file="/Users/ejemplo/ejemplo-test/r_test.txt", append=TRUE)
Después de ejecutar el código anterior, al abrir el archivo r_test.txt el contenido es el siguiente:
EJEMPLOGOOGLE
sink()
La función sink() puede enviar directamente la salida de la consola a un archivo:
sink("/Users/ejemplo/ejemplo-test/r_test.txt")Después de ejecutar esta instrucción, cualquier salida en la consola se escribirá en el archivo "/Users/ejemplo/ejemplo-test/r_test.txt", y la consola no mostrará la salida.
Nota: esta operación también es de "escritura sobrescrita" y borrará directamente el contenido original del archivo.
Si aún queremos mantener la salida en la consola, podemos configurar el atributo split:
sink("/Users/ejemplo/ejemplo-test/r_test.txt", split=TRUE)
Si desea cancelar la salida al archivo, puede llamar a sink sin parámetros:
sink()
Ejemplo
for (i in 1:5)
print(i)
sink() # Cancelar la salida al archivo
sink("r_test.txt", append=TRUE) # La consola no genera, escribe añadiendo al archivo
print("EJEMPLO")
Después de ejecutar el código anterior, se generará un archivo r_test.txt en el directorio actual. Al abrir el archivo, el contenido es el siguiente:
[1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] "EJEMPLO"
La salida en consola es:
[1] 1 [1] 2 [1] 3 [1] 4 [1] 5
Entrada de texto
Puede que pensemos en scanf en C, java.util.Scanner en Java; si has aprendido Python, quizás estés más familiarizado con la función input(). Sin embargo, R, como lenguaje interpretado, se parece más a algunos lenguajes de script de terminal (como bash o PowerShell), que se basan en sistemas de comandos y requieren entrada y salida, y no son adecuados para desarrollar aplicaciones orientadas al usuario (porque están destinados a usuarios finales). Por lo tanto, R no tiene una función específica para leer desde la consola; la entrada de texto se ha estado realizando durante el uso de R.
Leer texto desde un archivo
R tiene ricas funciones de lectura de archivos, pero si puramente se desea leer el contenido de un archivo como una cadena, se puede usar la función readLines:
readLines("/Users/ejemplo/ejemplo-test/r_test.txt")
Resultado de la ejecución:
[1] "EJEMPLOGOOGLE"
El resultado de la lectura son dos cadenas, que corresponden a las dos líneas de contenido del archivo leído.
Nota:Cada línea (incluida la última) del archivo de texto leído debe terminar con un carácter de nueva línea; de lo contrario, se reportará un error.
Otros métodos
Además de la entrada y salida simple de texto, R también proporciona muchos métodos para ingresar y generar datos. Lo más conveniente de R es que puede guardar estructuras de datos directamente en archivos, admitiendo formatos como CSV, tablas de Excel, etc., y también admite la lectura directa. Esto es sin duda muy conveniente para investigadores matemáticos. Sin embargo, estas funciones no tienen gran influencia en el aprendizaje de R, y las mencionaremos en capítulos posteriores.
Directorio de trabajo
Para operaciones con archivos, necesitamos configurar la ruta del archivo. R puede obtener y establecer el directorio de trabajo actual mediante las siguientes dos funciones:
- getwd(): obtener el directorio de trabajo actual
- setwd(): establecer el directorio de trabajo actual
Ejemplo
print(getwd())
# establecer el directorio de trabajo actual
setwd("/Users/ejemplo/ejemplo-test2")
# Ver el directorio de trabajo actual
print(getwd())
El resultado de ejecutar el código anterior es:
[1] "/Users/ejemplo/ejemplo-test" [1] "/Users/tianqixin/ejemplo-test2"
La característica más importante de R: vectorización
Este es uno de los aspectos más potentes de R.
Python:
for i in range(10):
...
R:
x <- c(1,2,3) x * 2
Resultado:
[1] 2 4 6
Todo el vector se calcula directamente.
Esto hace que R sea extremadamente potente en matemáticas, estadística y análisis de datos.
Otras extensiones