R语言 使用CSV文件
CSV文件基本上是文本文件,其中每一行的值都由分隔符分隔,如逗号或制表符。在本文中,我们将使用以下CSV文件样本:
sample.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(… ) 命令对目录进行相应的设置。
例子
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中的subset(csv_data,)函数检索相应的结果。结果以数据框的形式存储在R中。
例子
csv_data <- read.csv(file ='sample.csv')
min_pro <- min(csv_data$projects)
print (min_pro)
输出
2
聚合器函数(min, max, count等)可以应用于CSV数据。这里 min() 函数使用$符号应用于projects列。返回最小的项目数,即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是人力资源部门,项目数量<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中删除。