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. egon消失的一天,空虚寂寞冷,苑模块的时间

    一.时间模块time python有三种表达时间的形式:时间戳.格式化字符串输出和元组. 时间戳:从1970年1月1日00:00:00开始按秒计算的偏移量,返回值是一个float型. 格式化字符串输出 ...

  2. Linux学习--第二天--分区、格式化、系统安装、vmware、远程管理工具

    分区 主分区加上扩展分区只能有四个,其中扩展分区只能有一个,扩展分区不能写入数据,不能格式化,只能包含逻辑分区.这是硬盘的限制. 格式化 分为高级与低级.文件系统是高级格式化.低级是硬盘操作. 扩展分 ...

  3. uwsgi支持http长链接

    http1.1支持长链接,而http1.0不支持,所以,在切换http版本号或者升级服务端版本时候,尤其要注意这个造成的影响. 当客户端以http1.1长链接方式连接服务端时,服务端如果不支持1.1, ...

  4. shell中switch语法

    转载: https://blog.csdn.net/love__coder/article/details/7262160

  5. php内置函数分析之current()、next()、prev()、reset()、end()

    current()初始指向插入到数组中的第一个单元 next() 将数组的内部指针向前移动一位 prev() 将数组的内部指针倒回一位 reset() 将数组的内部指针指向第一个单元 end() 将数 ...

  6. easyui自学模板代码

    index.jsp源码 <%@ page language="java" contentType="text/html; charset=UTF-8" p ...

  7. Python---Tkinter---贪吃蛇

    # 项目分析: - 构成: - 蛇  Snake - 食物 Food - 世界 World - 蛇和食物属于整个世界 class World: self.snake self.food ------- ...

  8. man diff

    DIFF(1)                            GNU Tools                           DIFF(1) NAME/名称       diff - ...

  9. python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  10. 密码技术之密钥、随机数、PGP、SSL/TLS

    第三部分:密码技术之密钥.随机数.PGP.SSL/TLS 密码的本质就是将较长的消息变成较短的秘密消息——密钥. 一.密钥 什么是密钥? (1)密钥就是一个巨大的数字,然而密钥数字本身的大小不重要,重 ...