R语言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")

setwd("F:/worksp/R")



# Get and print current working directory.

print(getwd())

R



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



[1] "C:/Users/Administrator/Documents"

[1] "F:/worksp/R"

Shell



    注意:
此结果取决于您的操作系统和您当前正在工作的目录。



作为CSV文件输入



csv文件是一个文本文件,其中列中的值用逗号分隔。假设下面的数据存在于名为input.csv 的文件中。



您可以使用Windows记事本通过复制和粘贴此数据来创建此文件。使用记事本中的另存为所有文件(*.*)选项将文件另存为:input.csv(在目录:F:/worksp/R
下载)。



id,name,salary,start_date,dept

1,Rick,623.3,2012-01-01,IT

2,Dan,515.2,2013-09-23,Operations

3,Michelle,611,2014-11-15,IT

4,Ryan,729,2014-05-11,HR

 ,Gary,843.25,2015-03-27,Finance

6,Nina,578,2013-05-21,IT

7,Simon,632.8,2013-07-30,Operations

8,Guru,722.5,2014-06-17,Finance

Csv



读取CSV文件



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



setwd("F:/worksp/R")

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

print(data)

R



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



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

> print(data)

 
id    
name salary
start_date      
dept


1    
Rick 623.30
2012-01-01        
IT


2     
Dan 515.20 2013-09-23 Operations

3  3 Michelle 611.00
2014-11-15        
IT


4    
Ryan 729.00
2014-05-11        
HR

5
NA    
Gary 843.25
2015-03-27   
Finance


6    
Nina 578.00
2013-05-21        
IT


7    Simon
632.80 2013-07-30 Operations


8    
Guru 722.50
2014-06-17   
Finance

Shell



分析CSV文件



默认情况下,read.csv()函数将输出作为数据帧。这可以很容易地查看到,此外,我们可以检查列和行的数量。



setwd("F:/worksp/R")

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



print(is.data.frame(data))

print(ncol(data))

print(nrow(data))

R



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



[1] TRUE

[1] 5

[1] 8

Shell



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



获得最高工资



# Create a data frame.

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



# Get the max salary from data frame.

sal <- max(data$salary)

print(sal)

R



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



[1] 843.25

Shell



获得最高工资的人员的详细信息



可以使用过滤条件获取符合特定的行,类似于SQL的where子句。



setwd("F:/worksp/R")

# 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)

R



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



     
id   
name  salary 
start_date   
dept

5    
NA   
Gary  843.25 
2015-03-27   
Finance

Shell



获取IT部门的所有人员



# Create a data frame.

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



retval <- subset( data, dept == "IT")

print(retval)

R



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



      
id  
name     
salary  
start_date   dept

1     
1   
Rick     
623.3   
2012-01-01   IT

3     
3   
Michelle 
611.0   
2014-11-15   IT

6     
6   
Nina     
578.0   
2013-05-21   IT

Shell



获取IT部门薪水在600以上的人员



setwd("F:/worksp/R")

# Create a data frame.

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



info <- subset(data, salary > 600
& dept == "IT")

print(info)

R

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



      
id  
name     
salary  
start_date   dept

1     
1   
Rick     
623.3   
2012-01-01   IT

3     
3   
Michelle 
611.0   
2014-11-15   IT

Shell



获得在2014年或以后入职的人员



setwd("F:/worksp/R")

# Create a data frame.

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



retval <- subset(data, as.Date(start_date)
> as.Date("2014-01-01"))

print(retval)

R

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

      
id  
name    
salary  
start_date   
dept

3     
3    Michelle
611.00  
2014-11-15   
IT

4     
4   
Ryan    
729.00  
2014-05-11   
HR

5    
NA   
Gary    
843.25  
2015-03-27   
Finance

8     
8   
Guru    
722.50  
2014-06-17   
Finance

Shell

写入CSV文件

R可以从现有数据帧中来创建csv文件。write.csv()函数用于创建csv文件。 该文件在工作目录中创建。参考以下示例代码
-

setwd("F:/worksp/R")

# Create a data frame.

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

retval <- subset(data, as.Date(start_date)
> as.Date("2014-01-01"))

# print(retval)

# Write filtered data into a new file.

write.csv(retval,"output.csv")

newdata <- read.csv("output.csv")

print(newdata)

R



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



 
X     
id  
name     
salary  
start_date   
dept

1
3     
3   
Michelle 
611.00  
2014-11-15   
IT

2
4     
4   
Ryan     
729.00  
2014-05-11   
HR

3
5    
NA   
Gary     
843.25  
2015-03-27   
Finance

4
8     
8   
Guru     
722.50  
2014-06-17   
Finance

Shell

这里列X来自数据集更新器。在编写文件时可以使用其他参数来删除它。

setwd("F:/worksp/R")

# Create a data frame.

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

retval <- subset(data, as.Date(start_date)
> as.Date("2014-01-01"))



# Write filtered data into a new file.

write.csv(retval,"output.csv", row.names = FALSE)

newdata <- read.csv("output.csv")

print(newdata)

R

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

     
id   
name     
salary  
start_date   
dept

1     
3   
Michelle 
611.00  
2014-11-15   
IT

2     
4   
Ryan     
729.00  
2014-05-11   
HR

3    
NA   
Gary     
843.25  
2015-03-27   
Finance

4     
8   
Guru     
722.50  
2014-06-17   
Finance

R语言CSV文件的更多相关文章

  1. R语言csv与txt文本读入区分(sep参数)

    R语言csv与txt文本读入区分 R语言用来处理数据很方便,而处理数据的第一步是把数据读入内存空间,平时最常用的文本数据储存格式有两种: 一种是CSV(逗号分隔符文本)另一种是TXT(Tab分隔符或空 ...

  2. R语言的文件写入

    R语言的文件写入 官方文档介绍如下: write.table(x, file = "", append = FALSE, quote = TRUE, sep = " &q ...

  3. R语言读取文件

    1.R语言读取文件,文件类型为.txt 直接使用read.table()即可,若不知道当前的工作目录,可以使用函数getwd()来查看 2.R语言读取文件,文件类型为.xlsx 方法一:可以把excl ...

  4. R语言进行文件夹操作示例(转)

    rm(list=ls())path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'setwd(path)cat("file A\n", file="A& ...

  5. R: 导入 csv 文件,导出到csv文件,;绘图后导出为图片、pdf等

    ################################################### 问题:导入 csv 文件 如何从csv文件中导入数据,?参数怎么设置?常用参数模板是啥? 解决方 ...

  6. R语言--读取文件(数据输入)

    1 数据的输入 1.1 键盘输入 首先新建一张空表: dat<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) ...

  7. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  8. R语言 rds文件 和 文本文件 转换

    library(data.table) ## 读取 rds 文件,然后保存为文本文件 data <- readRDS("pneumonia_pathogens.rds") w ...

  9. R语言保存文件 Error in save error writing to connection

    Error in save(filtered, file = paste(sampleName, "filtered", sep = "_")) :   err ...

随机推荐

  1. python学习笔记(4)

    第六章 字符串操作 1.字符串处理 (1)字符串字 spam='Say hi to Bob\' s mother 面量 python中输入字符串:以单引号开始和结束 (2)双引号:字符串可以用双引号开 ...

  2. 解决stanfordnlp一直运行不报错也没有结果

    最近学习stanfordnlp,当运行程序时,发现程序一直没有反应,上网查询说是内存不够,但是本地电脑是8g内存.后来重新下载了所需文件,问题解决.

  3. Axiso解决跨域访问

    问题: 在项目中需要需要讲本地项目去请求一个URL接口获取数据 例如: 本地请求地址:http://127.0.0.1:19323/site/info.json 请求Url地址:http://www. ...

  4. Django基础命令

    创建工程 django-admin startproject 项目名创建应用 django-admin startapp 应用名 生成迁移 python3 manage.py makemigratio ...

  5. Listview四种视图VIEW

    http://wenku.baidu.com/link?url=65Ac8WL6j8KZwDlN8LyoxqFF5Jynvg80LnKc4jqTPQTY-59wwRDKhqGySYwxf6gZ9_6T ...

  6. Screen.MousePointer 属性 (访问)

    可以使用鼠标指针以及屏幕对象属性可以指定或确定当前显示的鼠标指针的类型.读取/写入的整数. 语法     表达式.MousePointer 表达式 一个代表 Screen 对象的变量. 注解     ...

  7. mysql5.7.26-忘记密码(CentOS为例)

    编辑 my.cnf [mysqld]下插入 skip-grant-tables [root@VM_0_7_centos mysql]# vim /etc/my.cnf # For advice on ...

  8. spring bean的生命周期与作用域

    bean的作用域 singleton:单例模式,Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象. prototype:原型模式,每次通过Spri ...

  9. SpringBoot之集成数据库

    一.集成 MySQL 数据库 1.1 配置 MySQL 添加依赖 <dependencies> <!--Spring 数据库相关依赖--> <dependency> ...

  10. 开发框架DevExtreme全新发布v19.1.3|附下载

    DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动.Web开发框架,可以直接在Visual Studio集成开发环境,构建 ...