Работа с CSV-файлами в R-программировании

Опубликовано: 31 Января, 2022

Файлы CSV - это в основном текстовые файлы, в которых значения каждой строки разделены разделителем, например запятой или табуляцией. В этой статье мы будем использовать следующий образец CSV-файла:
sample.csv

id, имя, отдел, зарплата, проекты
1, А, IT, 60754, 4
2, Б, Тех, 59640, 2
3, C, Маркетинг, 69040, 8
4, Д, Маркетинг, 65043, 5
5, E, Tech, 59943, 2
6, Ф, IT, 65000, 5
7, Г, ХР, 69000, 7

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

The contents of a CSV file can be read as a data frame in R using the read.csv(…) function. The CSV file to be read should be either present in the current working directory or the directory should be set accordingly using the setwd(…) command in R. The CSV file can also be read from a URL using read.csv() function.

Examples:

csv_data <- read.csv(file = "sample.csv")
print(csv_data)
  
# print number of columns
print (ncol(csv_data)) 
  
# print number of rows
print(nrow(csv_data))  

Выход:

       id, имя, отдел, зарплата, проекты
 1 1 А HR 60754 14
 2 2 B Техника 59640 3
 3 3 C Маркетинг 69040 8
 4 4 Д HR 65043 5
 5 5 Электронная технология 59943 2  
 6 6 F IT 65000 5
 7 7 г HR 69000 7
 [1] 4
 [1] 7

Заголовок по умолчанию имеет значение ИСТИНА в функции. Заголовок не учитывается при подсчете строк, поэтому в этом CSV-файле 7 строк и 4 столбца.

Запросы к файлам CSV

SQL-запросы могут выполняться с содержимым CSV, а соответствующий результат может быть получен с помощью функции subset (csv_data,) в R. В функции можно применять несколько запросов в то время, когда каждый запрос разделяется с помощью логического оператора. Результат сохраняется в виде фрейма данных в R.

Examples:

csv_data <- read.csv(file ="sample.csv")
min_pro <- min(csv_data$projects)
print (min_pro)

Выход:

 2

Aggregator functions (min, max, count etc.) can be applied on the CSV data. Here the min() function is applied on projects column using $ symbol. The minimum number of projects which is 2 is returned.

csv_data <- read.csv(file ="sample.csv")
new_csv <- subset(csv_data, department == "HR" & projects <10)
print (new_csv)

Выход:

      
      id, имя, отдел, зарплата, проекты
4 4 Д HR 65043 5
7 7 г HR 69000 7

Подмножество созданных данных сохраняется как фрейм данных, удовлетворяющий условиям, указанным в качестве аргументов функции. Сотрудники D и G являются HR и имеют количество проектов <10. Номера строк сохраняются в итоговом фрейме данных.

Запись в файл CSV

Содержимое фрейма данных можно записать в файл CSV. Файл CSV сохраняется в текущем рабочем каталоге с именем, указанным в функции write.csv (фрейм данных, имя выходного CSV) в R.

Examples:

csv_data <- read.csv(file ="sample.csv")
new_csv <- subset(csv_data, department == "HR" & projects <10)
write.csv(new_csv, "new_sample.csv")
new_data <-read.csv(file ="new_sample.csv")
print(new_data)

Выход:

     
      X id, ФИО, отдел, оклад, проекты
1 4 4 Д HR 65043 5
2 7 7 G HR 69000 7

The column X contains the row numbers of the original CSV file. In order to remove it, we can specify an additional argument in the write.csv() function that set row names to FALSE.

csv_data <- read.csv(file ="sample.csv")
new_csv <- subset(csv_data, department == "HR" & projects <10)
write.csv(new_csv, "new_sample.csv", row.names = FALSE)
new_data <-read.csv(file ="new_sample.csv")
print(new_data)

Выход:

    
      id, имя, отдел, зарплата, проекты
1 4 Д HR 65043 5
2 7 г HR 69000 7

Исходные номера строк удаляются из нового CSV.