在 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 中删除。