📜  在 R 编程中使用 CSV 文件

📅  最后修改于: 2022-05-13 01:55:00.343000             🧑  作者: Mango

在 R 编程中使用 CSV 文件

CSV 文件基本上是文本文件,其中每一行的值由分隔符分隔,如逗号或制表符。在本文中,我们将使用以下示例 CSV 文件:
样本.csv

id, name, department, salary, projects
1,   A,     IT,        60754,   4
2,   B,     Tech,      59640,   2
3,   C,     Marketing, 69040,   8
4,   D,     Marketing, 65043,   5
5,   E,     Tech,      59943,   2
6,   F,     IT,        65000,   5
7,   G,     HR,        69000,   7

读取 CSV 文件

CSV 文件的内容可以在 R 中使用 read.csv(…)函数读取为数据框。要读取的 CSV 文件应该存在于当前工作目录中,或者应该使用 R 中的 setwd(...) 命令相应地设置目录。也可以使用read.csv()函数从 URL 读取 CSV 文件。

例子:

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,   name,    department,    salary,      projects
 1      1      A         HR          60754         14
 2      2      B        Tech         59640         3
 3      3      C       Marketing     69040         8
 4      4      D         HR          65043         5
 5      5      E        Tech         59943         2  
 6      6      F         IT          65000         5
 7      7      G         HR          69000         7
 [1] 4
 [1] 7

标头在函数中默认设置为 TRUE 值。头部不包括在行数中,因此这个 CSV 有 7 行和 4 列。

使用 CSV 文件进行查询

可以对 CSV 内容执行 SQL 查询,并且可以使用 R 中的子集(csv_data,)函数检索相应的结果。可以在函数中应用多个查询,每个查询使用逻辑运算符分隔。结果作为数据帧存储在 R 中。

例子:

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

输出:

2

聚合函数(最小值、最大值、计数等)可以应用于 CSV 数据。这里min()函数使用 $ 符号应用于项目列。返回的最小项目数为 2。

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

输出:

id,   name,    department,    salary,      projects
4      4      D         HR          65043         5
7      7      G         HR          69000         7

创建的数据子集存储为满足作为函数参数指定的条件的数据框。员工 D 和 G 是 HR,项目数<10。行号保留在结果数据框中。

写入 CSV 文件

数据框的内容可以写入 CSV 文件。 CSV 文件以 R 中函数write.csv(data frame, output CSV name) 中指定的名称存储在当前工作目录中。

例子:

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,   name,    department,    salary,      projects
1     4      4      D         HR          65043         5
2     7      7      G         HR          69000         7

X 列包含原始 CSV 文件的行号。为了删除它,我们可以在 write.csv()函数中指定一个附加参数,将行名设置为 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,   name,    department,    salary,      projects
1     4      D         HR          65043         5
2     7      G         HR          69000         7

原始行号将从新 CSV 中删除。