第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > R语言:从 csv 文件中读取数据 然后将数据写入 csv 文件

R语言:从 csv 文件中读取数据 然后将数据写入 csv 文件

时间:2022-02-24 12:21:25

相关推荐

R语言:从 csv 文件中读取数据 然后将数据写入 csv 文件

在 R 中,我们可以从存储在 R 环境外部的文件读取数据。我们还可以将数据写入将由操作系统存储和访问的文件中。R可以读取和写入各种文件格式,如csv,excel,xml等。

在本章中,我们将学习从 csv 文件中读取数据,然后将数据写入 csv 文件。该文件应存在于当前工作目录中,以便 R 可以读取它。当然,我们也可以设置自己的目录并从那里读取文件。

获取和设置工作目录

可以使用getwd()函数检查 R 工作区指向哪个目录。您还可以使用setwd()函数设置新的工作目录。

# Get and print current working directory.print(getwd())# Set current working directory.setwd("/web/com")# Get and print current working directory.print(getwd())

当我们执行上面的代码时,它会产生以下结果 -

[1] "/web/com/1441086124_"[1] "/web/com"

此结果取决于您的操作系统和您正在使用的当前目录。

输入为 CSV 文件

csv 文件是一个文本文件,其中列中的值用逗号分隔。让我们考虑名为input.csv的文件中存在的以下数据。

您可以通过复制和粘贴此数据来使用 Windows 记事本创建此文件。将文件另存为输入.csv使用记事本中的“另存为所有文件(*.*)”选项。

id,name,salary,start_date,dept1,Rick,623.3,-01-01,IT2,Dan,515.2,-09-23,Operations3,Michelle,611,-11-15,IT4,Ryan,729,-05-11,HR5,Gary,843.25,-03-27,Finance6,Nina,578,-05-21,IT7,Simon,632.8,-07-30,Operations8,Guru,722.5,-06-17,Finance

读取 CSV 文件

下面是read.csv()函数的简单示例,用于读取当前工作目录中可用的 CSV 文件 -

data <- read.csv("input.csv")print(data)

当我们执行上面的代码时,它会产生以下结果 -

id, name, salary, start_date,dept11 Rick623.30 -01-01IT22 Dan515.20 -09-23Operations33 Michelle 611.00 -11-15IT44 Ryan729.00 -05-11HR5NA Gary843.25 -03-27Finance66 Nina578.00 -05-21IT77 Simon 632.80 -07-30Operations88 Guru722.50 -06-17Finance

分析 CSV 文件

默认情况下,read.csv()函数将输出作为数据帧提供。这可以很容易地检查如下。我们还可以检查列数和行数。

data <- read.csv("input.csv")print(is.data.frame(data))print(ncol(data))print(nrow(data))

当我们执行上面的代码时,它会产生以下结果 -

[1] TRUE[1] 5[1] 8

读取数据框中的数据后,我们可以应用适用于数据框的所有函数,如下一节所述。

获得最高工资

# Create a data frame.data <- read.csv("input.csv")# Get the max salary from data frame.sal <- max(data$salary)print(sal)

当我们执行上面的代码时,它会产生以下结果 -

[1] 843.25

获取最高薪水猫护理人员的详细信息

我们可以获取满足特定过滤条件的行,类似于 SQL where 子句。

# Create a data frame.data <- read.csv("input.csv")# Get the max salary from data frame.sal <- max(data$salary)# Get the person detail having max salary.retval <- subset(data, salary == max(salary))print(retval)

当我们执行上面的代码时,它会产生以下结果 -

id name salary start_date dept5NA Gary 843.25 -03-27 Finance

让所有在 IT 部门工作的人员

# Create a data frame.data <- read.csv("input.csv")retval <- subset( data, dept == "IT")print(retval)

当我们执行上面的代码时,它会产生以下结果 -

id namesalary start_date dept11 Rick623.3 -01-01 IT33 Michelle 611.0 -11-15 IT66 Nina578.0 -05-21 IT

获取IT部门工资大于600的人员

# Create a data frame.data <- read.csv("input.csv")info <- subset(data, salary > 600 & dept == "IT")print(info)

当我们执行上面的代码时,它会产生以下结果 -

id namesalary start_date dept11 Rick623.3 -01-01 IT33 Michelle 611.0 -11-15 IT

获取 年或之后加入的用户

# Create a data frame.data <- read.csv("input.csv")retval <- subset(data, as.Date(start_date) > as.Date("-01-01"))print(retval)

当我们执行上面的代码时,它会产生以下结果 -

id namesalary start_date dept33 Michelle 611.00 -11-15 IT44 Ryan729.00 -05-11 HR5NA Gary843.25 -03-27 Finance88 Guru722.50 -06-17 Finance

写入 CSV 文件

R 可以从现有数据框创建 csv 文件。write.csv()函数用于创建 csv 文件。此文件在工作目录中创建。

# Create a data frame.data <- read.csv("input.csv")retval <- subset(data, as.Date(start_date) > as.Date("-01-01"))# Write filtered data into a new file.write.csv(retval,"output.csv")newdata <- read.csv("output.csv")print(newdata)

当我们执行上面的代码时,它会产生以下结果 -

Xid namesalary start_date dept1 33 Michelle 611.00 -11-15 IT2 44 Ryan729.00 -05-11 HR3 5NA Gary843.25 -03-27 Finance4 88 Guru722.50 -06-17 Finance

这里的 X 列来自数据集 newper。可以在写入文件时使用其他参数删除此参数。

# Create a data frame.data <- read.csv("input.csv")retval <- subset(data, as.Date(start_date) > as.Date("-01-01"))# Write filtered data into a new file.write.csv(retval,"output.csv", row.names = FALSE)newdata <- read.csv("output.csv")print(newdata)

当我们执行上面的代码时,它会产生以下结果 :

id namesalary start_date dept13 Michelle 611.00 -11-15 IT24 Ryan729.00 -05-11 HR3NA Gary843.25 -03-27 Finance48 Guru722.50 -06-17 Finance

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。