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

Excel-файлы R

R как инструмент статистики, если его можно только вручную импортировать и экспортировать данные, его функции теряют смысл, поэтому R поддерживает получение данных из的主流ых форматов файлов для хранения таблиц (например, CSV, Excel, XML и т.д.).

Интерактив с таблицами CSV

CSV (Comma-Separated Values, CSV, иногда также называемый Character-Separated Values, так как разделителем может быть не только запятая) - это очень популярный формат файла для хранения таблиц данных, подходящий для хранения данных среднего или малого объема.

Поскольку большинство программ поддерживает этот формат файла, он часто используется для хранения и обмена данными.

CSV по своей сути является текстом, и его формат файла极其 прост: данные сохраняются по строкам в текстовом формате, каждая запись разделена разделителем и содержит одинаковую последовательность полей.

Ниже приведен пример файла sites.csv (хранящегося в той же папке, что и тестовое приложение):

id,name,url,likes
1,Google,www.google.com,111
2,w3codebox,ru.oldtoolbag.com,222
3,Taobao,www.taobao.com,333

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

Внимание:При работе с текстом, содержащим غیرحروف а-zA-Z, обратите внимание на кодировку сохранения, так как многие компьютеры普遍 используют кодировку UTF-8, я сохраняю в UTF-8.

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

Warning message:
In read.table(file = file, header = header, sep = sep, quote = quote,
  incomplete final line found by readTableHeader on 'sites.csv'

Чтение файла CSV

Теперь мы можем использовать функцию read.csv() для чтения данных из файла CSV:

Пример
print(data)

Если не указать атрибут encoding, функция read.csv() будет использовать кодировку по умолчанию операционной системы. Если вы используете Windows с китайской версией и не настраивали кодировку по умолчанию, то по умолчанию это должна быть GBK. Поэтому, пожалуйста, как можно больше используйте одинаковые кодировки, чтобы избежать ошибок.

print(newdata)

  Результат выполнения вышеуказанного кода будет следующим:
1 1 Google www.google.com 111
print(retval)
3 3 Taobao www.taobao.com 333

Функция read.csv() возвращает дата-рамку, с которой удобно выполнять статистическую обработку данных. Например, мы можем посмотреть количество строк и столбцов:

Пример
print(is.data.frame(data)) # проверить, является ли это дата-рамка
print(ncol(data)) # количество столбцов
print(nrow(data)) # количество строк

print(newdata)

[1] TRUE
[1] 4
[1] 3

Следующие данные с максимальным значением likes в статистической рамке:

Пример
# данные с максимальным likes
like <- max(data$likes)
print(like)

print(newdata)

[1] 333

Мы также можем指定 условия поиска, как в SQL запросе с WHERE clause, для этого используется функция subset().

Пример поиска данных с likes от 222 до:

Пример
data <- read.csv("sites.csv", encoding="UTF-8")
# likes равны 222 данным
retval <- subset(data, likes > 1 & name=="w3codebox")

print(newdata)

  Результат выполнения вышеуказанного кода будет следующим:
print(retval)

ВниманиеИспользование == для условия равенства.

Множественные условия разделяются символом &. Например, ищем данные с likes больше 1 и name w3codebox:

Пример
# likes больше 1 данные с name w3codebox
retval <- subset(data, likes > 1 & name=="w3codebox")
retval <- subset(data, likes > 1 & name=="w3codebox")

print(newdata)

  Результат выполнения вышеуказанного кода будет следующим:
print(retval)

2  2 w3codebox ru.oldtoolbag.com   222

Сохранение в файл CSV Язык R может быть использован  write.csv()

Функция сохраняет данные в файл CSV.

Пример
data <- read.csv("sites.csv", encoding="UTF-8")
# likes равны 222 данным
retval <- subset(data, likes == 222)
Далее по примеру, мы сохраняем данные likes = 222 в файл w3codebox.csv:
write.csv(retval,"w3codebox.csv", row.names = FALSE)
newdata <- read.csv("w3codebox.csv")

print(newdata)

 write.csv(retval,"w3codebox.csv")
X id   name            url likes

1 2  2 w3codebox ru.oldtoolbag.com   222

Пример
data <- read.csv("sites.csv", encoding="UTF-8")
# likes равны 222 данным
retval <- subset(data, likes == 222)
# Запись в новый файл
write.csv(retval,"w3codebox.csv", row.names = FALSE)
newdata <- read.csv("w3codebox.csv")

print(newdata)

  Результат выполнения вышеуказанного кода будет следующим:
id   name            url likes

1  2 w3codebox ru.oldtoolbag.com   222