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. STL 之 queue

    默认容器为双端队列deque 常用的函数有: empty Test whether container is empty (public member function ) size Return s ...

  2. OC(构造函数,分类等知识总结)

    文章来源:http://my.oschina.net/luoguankun/blog/219532 一.成员变量的作用域 ·        @public ·        在任何地方都能直接访问对象 ...

  3. linux下iptables讲解

    iptables(netfilter网络过滤器) iptables是linux上特有的防火墙机制,功能非常强大.CentOS默认是没有iptables规则. iptables命令可用于配置Linux的 ...

  4. Peakvue和自相关技术轴承诊断

    什么是应力波 应力波产生于“金属与金属相互碰撞的事件” 加速度传感器捕捉含有具有短时特性应力波的轴承振动信号 应力波是一种非常短暂的连续的脉冲信号, 通常在百万分之一秒到千分之一秒的区间范围内, 它是 ...

  5. Qt应用程序的发布

    1 Windows平台上的应用程序发布 Windows发布工具 windeployqt.exe是Qt自带的Windows平台发布工具.windeployqt.exe文件在Qt的bin目录下,Qt的每一 ...

  6. python 编码解码

    一种编码想要转成另一种编码,需要先解码成万国码:Unicode,然后再从Unicode转成其他编码. 例如GBK格式想要转成utf-8,需要先按照 gbk 的格式 decode 成 unicode,再 ...

  7. java Arrays源码浅出

    1.toString 返回指定数组内容的字符串表示形式. demo: 由demo可窥见Arrays.toString的所做的工作就是将数组元素转换为字符串(以逗号分割数组元素,包裹在方括号中). 源码 ...

  8. Flutter SDK安装(windows)

    Flutter集成了Dart,因此不需要单独安装dart-sdk.Flutter的SDK可以从官网下载:https://flutter.io/sdk-archive/#windows 在Flutter ...

  9. spring动态调用方法

    有的时候为了程序的灵活性,需要根据参数动态的调用方法.代码框架大致spring为主,下面是具体代码: 接口: 实现类(实现类中有一个从spring容器中取的对象) 这是最初我直接用反射去调用的代码: ...

  10. CSS中的自适应单位vw、vh、vmin、vmax

    1.vw.vh.vmin.vmax各单位的意义 上面的自适应单位可以统称为视口单位. 可以先了解一下视口指的是什么? 在PC端,视口指的是在PC端,指的是浏览器的可视区域:而在移动端,它涉及3个视口: ...