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
1
Rick 623.30
2012-01-01
IT
2
2
Dan 515.20 2013-09-23 Operations
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
6
6
Nina 578.00
2013-05-21
IT
7
7 Simon
632.80 2013-07-30 Operations
8
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文件的更多相关文章
- R语言csv与txt文本读入区分(sep参数)
R语言csv与txt文本读入区分 R语言用来处理数据很方便,而处理数据的第一步是把数据读入内存空间,平时最常用的文本数据储存格式有两种: 一种是CSV(逗号分隔符文本)另一种是TXT(Tab分隔符或空 ...
- R语言的文件写入
R语言的文件写入 官方文档介绍如下: write.table(x, file = "", append = FALSE, quote = TRUE, sep = " &q ...
- R语言读取文件
1.R语言读取文件,文件类型为.txt 直接使用read.table()即可,若不知道当前的工作目录,可以使用函数getwd()来查看 2.R语言读取文件,文件类型为.xlsx 方法一:可以把excl ...
- R语言进行文件夹操作示例(转)
rm(list=ls())path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'setwd(path)cat("file A\n", file="A& ...
- R: 导入 csv 文件,导出到csv文件,;绘图后导出为图片、pdf等
################################################### 问题:导入 csv 文件 如何从csv文件中导入数据,?参数怎么设置?常用参数模板是啥? 解决方 ...
- R语言--读取文件(数据输入)
1 数据的输入 1.1 键盘输入 首先新建一张空表: dat<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) ...
- [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。
解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...
- R语言 rds文件 和 文本文件 转换
library(data.table) ## 读取 rds 文件,然后保存为文本文件 data <- readRDS("pneumonia_pathogens.rds") w ...
- R语言保存文件 Error in save error writing to connection
Error in save(filtered, file = paste(sampleName, "filtered", sep = "_")) : err ...
随机推荐
- Hive配置日志
1. 重命名hive/conf文件夹下的hive-log4j 2. 修改hive.log.dir参数,如果不修改默认hive.log位于/tmp/{user}下面,一般来说使用在hive目录下自己创建 ...
- nice - 改变执行程序的优先级
总览 (SYNOPSIS) nice [OPTION]... [COMMAND [ARG]...] 描述 (DESCRIPTION) 以 调整过的 调度优先级 运行 COMMAND. 如果 没给出 C ...
- 长沙理工大学第十二届ACM大赛-重现赛C 安卓图案解锁 (模拟)
链接:https://ac.nowcoder.com/acm/contest/1/C来源:牛客网 安卓图案解锁 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言 ...
- webpack 零基础到工程实战(1)
webpack resolve:resolve 配置是帮助 webpack 查找依赖模块resolve.alias 是最常用的配置,通过设置 alias 可以帮助 webpack 更快查找模块依赖,而 ...
- 郭盛华现身北京机场,颇有IT男的风范,网友:疑似被招安了
郭盛华纵横互联网江湖数十年,他白手起家,凭着过人的勇敢.智慧和绝技,身经百战,显赫辉煌,成为中外闻名的互联网安全领域大师级人物. 郭盛华的网络技术指导方面经验丰富实力深厚.他是中国互联网安全领域的传奇 ...
- SpringBoot整合MyBatis-Plus代码自动生成类
在springboot的test测试类下创建 MpGenerator.java 配置 MpGenerator.java public class MpGenerator { @Test publ ...
- sigmoid和softmax的应用意义区别
转载自:https://baijiahao.baidu.com/s?id=1636737136973859154&wfr=spider&for=pc写的很清楚,并举例佐证,容易理解,推 ...
- js 遍历数组取出字符串用逗号拼接
var arr = [{"name":"hhh"},{"name":"dddd"}] //用js function ge ...
- HDU 6206 Apple ( 高精度 && 计算几何 && 三点构圆求圆心半径 )
题意 : 给出四个点,问你第四个点是否在前三个点构成的圆内,若在圆外输出"Accepted",否则输出"Rejected",题目保证前三个点不在一条直线上. 分 ...
- 字符串截取模板 && POJ 3450、3080 ( 暴力枚举子串 && KMP匹配 )
//截取字符串 ch 的 st~en 这一段子串返回子串的首地址 //注意用完需要根据需要最后free()掉 char* substring(char* ch,int st,int en) { ; c ...