English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основные грамматические правила языка R

Обычно обучение новому языку программирования начинается с вывода программы "Hello, World!". Код программы "Hello, World!" на языке R выглядит следующим образом:

myString <- "Hello, World!"
print ( myString )

В приведенном примере строку "Hello, World!" присваивается переменной myString, а затем выводится с помощью функции print().

Внимание:При присвоении значения в языке R используется левая стрелка <-, но в некоторых новых версиях также поддерживается знак равенства =. =.

Переменная

Действительные имена переменных в языке R состоят из букв, цифр и точек . или подчеркивания _.

Название переменной начинается с буквы или точки.

Название переменнойПравильно ли это?Причина
var_name2.ПравильноСимволы开头, состоящие из букв, цифр, подчеркивания _ и точки .
var_name%Ошибка% является незаконным символом
2var_nameОшибкаНазвание переменной не может начинаться с цифры

.var_name,

var.name

ПравильноМожно начинать с точки ., но应注意, что за точкой не может следовать цифра
.2var_nameОшибка. Начало не может следовать за цифрой
_var_nameОшибкаНазвание переменной не может начинаться с подчеркивания _.

Присвоение переменной

В последней версии языка R присвоение значения можно выполнять с помощью левой стрелки <-, знака равенства = или правой стрелки ->.

# Использование знака равенства = для присвоения значения
> var.1 <- c(0,1,2,3)           
> print(var.1)
[1] 0 1 2 3
# Использование левой стрелки <- для присвоения значения
> var.2 <- c("learn","R")   
> print(var.2)
[1] "learn" "R"
    
# Использование правой стрелки <- для присвоения значения
> c(TRUE,1) -> var.3
> print(var.3)
[1] 1 1

Чтобы проверить, какие переменные определены, можно использовать: ls() Функция:

> print(ls())
[1] "var.1" "var.2" "var.3"

Чтобы удалить переменную, можно использовать: rm() Функция:

> rm(var.3)
> print(ls())
[1] "var.1" "var.2"
>

В предыдущей главе мы уже изучили, как устанавливать программную среду R,接下来我们将 рассказать о интерактивном программировании и файловом脚本ном программировании на языке R.

Интерактивное программирование

Чтобы войти в интерактивное окно программирования, нужно только выполнить команду R в командной строке:

R

Исполнив эту команду, вызывается интерпретатор языка R, и мы вводим код после знака >.

Интерактивные команды могут быть завершены вводом q().

> q()
Сохранить изображение рабочей среды? [y/n/c]: y

Файл скрипта

Файлы на языке R имеют расширение .R.

Далее мы создаем файл w3codebox-test.R с кодом, следующим образом:

w3codebox-test.R файл

myString <- "w3codebox"
print ( myString )

Далее мы используем Rscript для выполнения этого скрипта в окне командной строки:

Rscript w3codebox-test.R

Результат вывода будет следующим:

[1] "w3codebox"

Ввод и вывод

Вывод print()

print() - это функция вывода в языке R.

Как и другие языки программирования, R поддерживает вывод чисел, символов и т.д.

Выражение вывода очень просто:

print("w3codebox")
print(123)
print(3e2)

Результат выполнения:

[1] "w3codebox"
[1] 123
[1] 300

Язык R, как и node.js и Python, является интерпретационным языком, поэтому мы часто можем использовать язык R так же, как и команду в командной строке.

Если вы вводите значение на одной строке, R также будет его напрямую стандартизировать и выводить:

> 5e-2
[1] 0.05

Функция cat()

Если вам нужно объединить результаты вывода, вы можете использовать функцию cat():

> cat(1, "+", 1, "=", 2, '\n')
1 + 1 = 2

Функция cat() автоматически добавляет пробелы между двумя соединенными элементами.

Вывод содержимого в файл

Методы вывода в файл на языке R разнообразны и удобны.

Функция cat() поддерживает вывод результатов directamente в файл:

cat("w3codebox", file="/Users/w3codebox/w3codebox-test/r_test.txt")

Эта команда не будет производить результат в консоли, а будет выводить "w3codebox" в файл "/Users/w3codebox/w3codebox-test/r_test.txt".

Параметр file может быть абсолютным или относительным путем, рекомендуется использовать абсолютный путь, формат пути Windows - D:\\r_test.txt.

cat("w3codebox", file="D:\\r_test.txt")

Внимание: Эта операция - "запись поверх", используйте ее с осторожностью, так как она будет очищать原有数据 из файла вывода. Если вам нужно "добавить к записи", не забудьте установить параметр append:

cat("GOOGLE", file="/Users/w3codebox/w3codebox-test/r_test.txt", append=TRUE)

После выполнения вышеуказанного кода откройте файл r_test.txt и увидите следующий контент:

w3codeboxGOOGLE

sink()

Функция sink может напрямую записывать текстовый вывод консоли в файл:

sink("/Users/w3codebox/w3codebox-test/r_test.txt")

После выполнения этой строки все выводы на консоли будут записаны в файл "/Users/w3codebox/w3codebox-test/r_test.txt", и вывод на консоль не будет отображаться.

Примечание: Эта операция также является операцией "перезаписи", которая напрямую удаляет原有 файловый контент.

Если мы хотим сохранить вывод в консоли, можно установить атрибут split:

sink("/Users/w3codebox/w3codebox-test/r_test.txt", split=TRUE)

Если вы хотите отменить вывод в файл, можно вызвать sink без параметров:

sink()
sink("r_test.txt", split=TRUE) # Вывод в консоль также
for (i in 1:5) 
    print(i)
sink() # Отменить вывод в файл
sink("r_test.txt", append=TRUE) # Не выводить в консоль, но записывать в файл
print("w3codebox")

Выполнение вышеуказанного кода создаст файл r_test.txt в текущей директории. Откройте файл и увидите следующий контент:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] "w3codebox"

Консольный вывод:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

Текстовый ввод

Возможно, нам приходит на ум C-язык с scanf, Java с java.util.Scanner, если вы изучали Python, то, возможно, вам более знакома функция input(). Однако сам язык R, как интерпретационный язык, более схож с некоторыми终端 скриптовыми языками (например, bash или PowerShell), которые основаны на командной системе и сами требуют ввода и вывода, и не подходят для разработки приложений, ориентированных на пользователей (поскольку они предназначены для конечных пользователей). Поэтому в языке R нет专门ских функций для чтения из консоли, текстовый ввод всегда используется в его использовании.

Чтение текста из файла

Язык R предоставляет множество функций для чтения файлов, но если нужно просто прочитать содержимое файла в строку, можно использовать функцию readLines:

readLines("/Users/w3codebox/w3codebox-test/r_test.txt")

Результат выполнения:

[1] "w3codeboxGOOGLE"

Результат чтения - это два строки, содержащие два строки содержащие содержимое файла.

Внимание:Конец каждой строки текстового файла, включая последнюю, должен быть символом перевода строки, в противном случае появится ошибка.

Другие методы

Кроме простого ввода и вывода текста, R предоставляет множество методов для ввода и вывода данных, одним из самых удобных аспектов языка R является возможность сохранять данные структур прямо в файлы, поддерживая форматы CSV, Excel и другие, и позволяя напрямую читать их. Это无疑 очень удобно для математиков. Однако эти функции не сильно влияют на изучение языка R, мы рассмотрим их в следующих главах.

Рабочая директория

Для операций с файлами нам нужно установить путь к файлу, язык R позволяет получить и установить текущую рабочую директорию через следующие строки:

  • getwd() : Получение текущей рабочей директории

  • setwd() : Установка текущей рабочей директории

# Текущая рабочая директория
print(getwd())
# Установка текущей рабочей директории
setwd("/Users/w3codebox/w3codebox-test2")
# Просмотр текущей рабочей директории
print(getwd())

Результат выполнения вышеуказанного кода:

[1] "/Users/w3codebox/w3codebox-test"
[1] "/Users/tianqixin/w3codebox-test2"