English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
R как инструмент статистики, если его можно только вручную импортировать и экспортировать данные, его функции теряют смысл, поэтому R поддерживает получение данных из的主流ых форматов файлов для хранения таблиц (например, CSV, Excel, XML и т.д.).
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'
Теперь мы можем использовать функцию 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)
Сохранение в файл 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