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. 浏览器常用12种兼容问题(JS)

    //1.滚动条到顶端的距离(滚动高度) var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; / ...

  2. Android 开发环境部署

    引言   在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环 ...

  3. Schedule HDU - 6180 (multiset , 贪心)

    There are N schedules, the i-th schedule has start time si and end time ei (1 <= i <= N). Ther ...

  4. Codeforces 907 矩阵编号不相邻构造 团操作状压DFS

    A. #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #de ...

  5. 10年前文章_解决parted 编译出错问题

    找到 include/site/i386-linux 文件,修改定义ac_cv_sizeof_off_t 的长度,从原来的4改为8 ac_cv_sizeof_off_t=8 删除 build_dir/ ...

  6. windows 10 安装openssh 0x800f0954 的一种解决方法

    安装与卸载参考:https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_first ...

  7. vue2.0 之 生命周期

     一.vue1.x与vue2.x生命周期的变化区别及含义表(图表摘自网络)   二.vue2.x生命周期图和各阶段具体含义 beforecreated:el 和 data 并未初始化 created: ...

  8. 用selenium启动chrome浏览器

    python 3.7 pycharm 1.安装selenium pip3 install selenium 2.下载与chrome匹配的chromdriver.exe,放到项目的解释器路径下,跟pyt ...

  9. Bugku 杂项 宽带信息泄露

    宽带信息泄露 flag是宽带用户名 下载文件后用RouterPassView打开,搜索username即可

  10. Git 使用的问题总结

    1.git stash pop 显示 xxx already exists, no checkout 当我们先使用 git stash save -u '保存信息说明' 来储藏更改,然后拉取代码 gi ...