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. 前端开发HTML&CSS入门——具体是做什么的

    软件开发,一提起来感觉这个感觉这个词范围很大很广,说起来也很笼统.不知所云,开发的到底是什么?或者说开发的具体内容是什么?以前我们讲软件开发主要是分前端和后端,那前端和后端又是什么那?你可以这么通俗的 ...

  2. Mysql 服务器管理程序 mysqladmin

    mysqladmin [oprions] command 选项                                      说明 create db_name               ...

  3. 如何编写testbench的总结(非常实用的总结)

    1.激励的设置 相应于被测试模块的输入激励设置为reg型,输出相应设置为wire类型,双向端口inout在测试中需要进行处理. 方法1:为双向端口设置中间变量inout_reg作为该inout的输出寄 ...

  4. ThreadLocal 解决simpledateformat线程不安全

    SimpleDateFormat在多线程情况下会出现线程不安全的情况,故用ThreadLoacl 处理/** * 用ThreadLocal处理simplDateFormat线程不安全 */public ...

  5. 安装了sql-alchemy但导入sql_alchemy时失败

    问题描述:按成flask-sqlalchemy成功了,但是项目导入flask_alchemy时出错 但是,发现在代码中还是导入不了 之后发现问题,到file->setting->proje ...

  6. css将两个元素水平对齐,兼容IE8

    css实现元素水平对齐 css实现水平对齐,如图 有人会说css实现这种水平对齐要兼容ie8还不简单吗?使用float: left,或者display: inline-block,不就可以了吗?是的, ...

  7. tensorflow打印pb、ckpt模型的参数以及在tensorboard里显示图结构

    打印pb模型参数及可视化结构import tensorflow as tf from tensorflow.python.framework import graph_util tf.reset_de ...

  8. 【Luogu4299】首都

    BZOJ权限题. 洛谷 题目描述 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B ...

  9. 多对多关系表的创建方式、forms组件

    目录 多对多关系表的三种创建方式 1.全自动,Django自动创建 2.纯手撸 3.半自动(推荐使用) forms组件 小例子 forms组件 校验器 钩子函数 局部钩子 全局钩子 forms组件常用 ...

  10. CentOS7下修改默认网卡名为eth0的两种方法

    前言 大家都知道CentOS7默认的网卡名称是和设备名称是随机的,如果要修改网卡名称以 eth 开头,有两种方式,如下: 第一种方式 这种方式适合在安装操作系统的时候进行设置, 点击 Tab,打开ke ...