巧用R语言实现各种常用的数据输入与输出

将数据输入或加载到R工作空间中,是使用R进行数据分析的第一步。R语言支持读取众多格式的数据文件,excel文件,csv文件,txt文件和数据库(MYSQL数据库)等;其中,excel和csv是我们最常遇到的数据文件格式。


目录

0 设置工作目录【很重要】

1 read.table()  #读取带分隔符的文本/数据文件

2 read.csv()  #读取.csv格式的数据,read.table的一种特定应用

3 excel数据文件读取

4 scan #比read.table更加灵活

5 保存为.Rdata

6 write.table() 

7 CSV格式导出

(提示:加粗部分可重点学习



正文


0 设置工作目录【很重要】


R语言中数据的输入需要设置数据读取的路径,一般将数据文件放到工作目录下,这样直接就可以通过read.table等读取数据文档(不许要设置路径)。


方法一:setwd()


setwd("E:/")  #设置当前工作目录为"E:/"

getwd()  #读取当前工作空间的工作目录(文件读取保存路径)


 
> getwd()  #读取当前工作空间的工作目录(文件读取保存路径)	
[1] "C:/Users/ysl/Documents"	
> setwd("E:/") #设置当前工作目录为"E:/"	
> getwd() #再次使用getwd()函数即可查看是否设置成功	
[1] "E:/"

640?wx_fmt=png


方法二:通过R-gui菜单栏设置(文件-改变工作目录)

640?wx_fmt=png



1 read.table()  #读取带分隔符的文本文件


read.table()函数是R最基本函数之一,读取带分隔符的文本/表格文件

 
#Usageread.table(file, header = FALSE, sep = "", quote = "\"'",	dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),	row.names, col.names, as.is = !stringsAsFactors,	na.strings = "NA", colClasses = NA, nrows = -1,	skip = 0, check.names = TRUE, fill = !blank.lines.skip,	strip.white = FALSE, blank.lines.skip = TRUE,	comment.char = "#",	allowEscapes = FALSE, flush = FALSE,	stringsAsFactors = default.stringsAsFactors(),	fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)	
read.csv(file, header = TRUE, sep = ",", quote = "\"",	
dec = ".", fill = TRUE, comment.char = "", ...)	read.csv2(file, header = TRUE, sep = ";", quote = "\"",	
dec = ",", fill = TRUE, comment.char = "", ...)	read.delim(file, header = TRUE, sep = "\t", quote = "\"",	
dec = ".", fill = TRUE, comment.char = "", ...)	read.delim2(file, header = TRUE, sep = "\t", quote = "\"",	dec = ",", fill = TRUE, comment.char = "", ...)


常用参数的说明如下:


(1)file:file是一个带分隔符的ASCII文本文件。

①绝对路径或者相对路径。一定要注意,在R语言中\是转义符,所以路径分隔符需要写成"\\"或者“/”。所以写成“C:\\myfile\\myfile.txt”或者“C:/myfile/myfile.txt”即可。

②使用file.choose(),弹出对话框,自动选择文件位置。例如:read.table(file.choose(),...)。


(2)header:一个表示文件是否在第一行包含了变量的逻辑型变量。

如果header设置为TRUE,则要求第一行要比数据列的数量少一列。


(3)sep分开数据的分隔符。默认sep=""


read.table()函数可以将1个或多个空格、tab制表符、换行符或回车符作为分隔符。常见空白分隔符有:空格,制表符,换行符

 
sep=” ”;sep = “\t”;sep = “\n”


(4)stringsAsFactors 逻辑值,标记字符向量是否需要转化为因子,默认是TRUE。stringsAsFactors = F意味着,“在读入数据时,遇到字符串之后,不将其转换为factors,仍然保留为字符串格式”。


(5)encoding 设定输入字符串的编码方式。


#读取txt文档

 
> df<- read.table("data.txt")	
> df	
V1 V2	
1  x  y	
2  1  2	
3  3  4	
4  5  6	
> df <- read.table("data.txt",header = T)	
> df	
x y	
1 1 2	
2 3 4	
3 5 6


#样式1:直接读取数据

 
> df <- read.table("data.csv")  #直接读取数据	
> head(df)	
V1	
1 ID,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species	
2                                     1,5.1,3.5,1.4,0.2,setosa	
3                                       2,4.9,3,1.4,0.2,setosa	
4                                     3,4.7,3.2,1.3,0.2,setosa	
5                                     4,4.6,3.1,1.5,0.2,setosa	
6                                       5,5,3.6,1.4,0.2,setosa	

#样式2:读数+首行表头

 
> df <- read.table("data.csv",header = T)  #读数+首行表头	
> head(df)	
ID.Sepal.Length.Sepal.Width.Petal.Length.Petal.Width.Species	
1                                     1,5.1,3.5,1.4,0.2,setosa	
2                                       2,4.9,3,1.4,0.2,setosa	
3                                     3,4.7,3.2,1.3,0.2,setosa	
4                                     4,4.6,3.1,1.5,0.2,setosa	
5                                       5,5,3.6,1.4,0.2,setosa	
6                                     6,5.4,3.9,1.7,0.4,setosa


#样式3:读数+首行表头+","逗号分割

 
> df <- read.table("data.csv",header = T,sep=",")  	
#读数+首行表头+","逗号分割	
> head(df)	
ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species	
1  1          5.1         3.5          1.4         0.2  setosa	
2  2          4.9         3.0          1.4         0.2  setosa	
3  3          4.7         3.2          1.3         0.2  setosa	
4  4          4.6         3.1          1.5         0.2  setosa	
5  5          5.0         3.6          1.4         0.2  setosa	
6  6          5.4         3.9          1.7         0.4  setosa	
> summary(df)	
ID          Sepal.Length    Sepal.Width     Petal.Length  	
Min.   :  1.00   Min.   :4.300   Min.   :2.000   Min.   :1.000  	
1st Qu.: 38.25   1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  	
Median : 75.50   Median :5.800   Median :3.000   Median :4.350  	
Mean   : 75.50   Mean   :5.843   Mean   :3.057   Mean   :3.758  	
3rd Qu.:112.75   3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  	
Max.   :150.00   Max.   :7.900   Max.   :4.400   Max.   :6.900  	
Petal.Width          Species  	
Min.   :0.100   setosa    :50  	
1st Qu.:0.300   versicolor:50  	
Median :1.300   virginica :50  	
Mean   :1.199                  	
3rd Qu.:1.800                  	
Max.   :2.500                  	

#样式4:读数+首行表头+","逗号分割+字符转因子factor

 
> df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)	
##读数+首行表头+","逗号分割+字符转因子factor	
> head(df)	
ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species	
1  1          5.1         3.5          1.4         0.2  setosa	
2  2          4.9         3.0          1.4         0.2  setosa	
3  3          4.7         3.2          1.3         0.2  setosa	
4  4          4.6         3.1          1.5         0.2  setosa	
5  5          5.0         3.6          1.4         0.2  setosa	
6  6          5.4         3.9          1.7         0.4  setosa	#请注意species结果与样式3中结果的差异	
> summary(df) 	
ID          Sepal.Length    Sepal.Width     Petal.Length  	
Min.   :  1.00   Min.   :4.300   Min.   :2.000   Min.   :1.000  	
1st Qu.: 38.25   1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  	
Median : 75.50   Median :5.800   Median :3.000   Median :4.350  	
Mean   : 75.50   Mean   :5.843   Mean   :3.057   Mean   :3.758  	
3rd Qu.:112.75   3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  	
Max.   :150.00   Max.   :7.900   Max.   :4.400   Max.   :6.900  	
Petal.Width          Species  	
Min.   :0.100   setosa    :50  	
1st Qu.:0.300   versicolor:50  	
Median :1.300   virginica :50  	
Mean   :1.199                  	
3rd Qu.:1.800                  	Max.   :2.500  


2 read.csv()  #读取.csv格式数据,read.table的一种特定应用


read.csv() 读取逗号分割数据文件,read.table()的一种特定应用

默认逗号分割,header=T,stringsAsFactor = T


df <- read.csv("data.csv")

等同df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)


 
read.csv(file, header = TRUE, sep = ",", quote = "\"",	dec = ".", fill = TRUE, comment.char = "", ...)
 
#实例	
> df <- read.csv("data.csv") 	
#相当于df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)	
> head(df)	
ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species	
1  1          5.1         3.5          1.4         0.2  setosa	
2  2          4.9         3.0          1.4         0.2  setosa	
3  3          4.7         3.2          1.3         0.2  setosa	
4  4          4.6         3.1          1.5         0.2  setosa	
5  5          5.0         3.6          1.4         0.2  setosa	
6  6          5.4         3.9          1.7         0.4  setosa


 3 excel数据文件读取


这里只讲1种:readxl,其他excel数据读取方法可自行百度

 
install.packages("readxl")	
library(readxl)	
df <- read_excel("文件名",sheet=1)


4 scan #类似read.table(),但比read.table更加灵活

 
scan(file = "", what = double(), nmax = -1, n = -1, sep = "",	quote = if(identical(sep, "\n")) "" else "'\"", dec = ".",	skip = 0, nlines = 0, na.strings = "NA",	flush = FALSE, fill = FALSE, strip.white = FALSE,	quiet = FALSE, blank.lines.skip = TRUE, multi.line = TRUE,	comment.char = "", allowEscapes = FALSE,	fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

关于scan的相关参数介绍参照read.table


保存为.Rdata

通过save()函数保存为.Rdata文件,通过load()函数将数据加载到R中

save() #保存数据

load() #加载数据

 
> a <- 1:9 	
> save(a,file='E://dumData.Rdata')  	
> rm(a)   #将对象a从R中删除  	
> load('d://dumData.Rdata')  	
> print(a)  	[1]  1  2  3  4  5  6  7  8  9


 6 write.table()  #常用导出数据函数

 
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",	eol = "\n", na = "NA", dec = ".", row.names = TRUE,	col.names = TRUE, qmethod = c("escape", "double"),	fileEncoding = "")

参数解释:

  1. x: 要写入的对象,最好是矩阵或数据框。如果不是,它是试图强迫x到一个数据框。

  2. file:  一个字符串命名文件或编写而打开的一个连接。 " "表示输出到控制台。

  3. append: 逻辑。只有当file是一个字符串才相关。

    如果TRUE,输出追加到文件;如果FALSE,任何现有文件的名称被摧毁

  4. quote:  一个逻辑值(TRUE或FALSE)或数字向量。如果TRUE,任何字符或因素列将用双引号包围。如果一个数值向量,其元素为引用的列的索引。在这两种情况下,行和列名报价,如果他们被写入。如果FALSE,并没有被引用。

  5. sep: 字段分隔符字符串。每一行x中的值都被这个字符串分隔开。

  6. row.names: 表示x的行名是否与x一起写的逻辑值,或者是写行名的字符向量

  7. col.names: 类似row.names。

实例

 
> x <- c (22,23)	
> y <- c ("k", "j")	
> f <- data.frame (x = x, y = y)	
> f	
#   x y	
#1 22 k	
#2 23 j	#以空格分隔数据列(默认),含行号(默认),含列名(默认),字符串带引号	
> write.table (f, file ="f.csv") 	#以逗号分隔数据列,含行号(默认),含列名(默认),字符串带引号	
> write.table (f,file ="f.csv", sep =",")   	#以逗号分隔数据列,不含行号,含列名(默认),字符串带引号	
> write.table (f,file ="f.csv", sep =",", row.names = FALSE)    	#以空格分隔数据列,不含行号,不含列名,字符串带引号	> write.table (f,file ="f.csv", row.names = FALSE, col.names =FALSE) 	#以空格分隔数据列,不含行号,不含列名,字符串不带引号	> write.table (f,file ="f.csv", row.names = FALSE, col.names =FALSE, quote =FALSE)  



7 CSV格式导出 #write.table的一种特定应用

通过函数write.csv()保存为一个.csv文件

write.csv()  #保存为一个.csv文件

 
> x <- c(1:3)	
> y <- c((1:3)/10)	
> z <- c("R and","Data Mining","Examples")  	
> df <- data.frame(x= x,y= y,z = z) 	
> df	
#  x   y           z	
#1 1 0.1       R and	
#2 2 0.2 Data Mining	
#3 3 0.3    Examples	
> write.csv(df1,"E://dummmyData.csv",row.names = FALSE)  


640?wx_fmt=png



以上是一些常用的数据输入与输出方法

其他方法可自行百度或在R软件中使用“??函数名”获得帮助



【推荐书籍】


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34239.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言安装 + 读入csv数据画图的过程中学习到的东西~~(ง •_•)ง

总体来说&#xff0c;我觉得R语言和python在画图上是有些相似的~ 目录 一、安装二、读入CSV数据三、保存代码代码 一、安装 B站上搜一个UP主&#xff1a;基因学苑。看他的安装教程及设置&#xff0c;很详细。 总体来说就是先下 R&#xff0c;再下 RStudio&#xff0c;然后使用…

超级干货 :手把手教你学习R语言(附资源链接)

作者&#xff1a;NSS&#xff1b;翻译&#xff1a;杨金鸿&#xff1b;校对&#xff1a;韩海畴&#xff0c;林亦霖&#xff1b; 本文约3000字&#xff0c;建议阅读7分钟。本文为带大家了解R语言以及分段式的步骤教程&#xff01; 人们学习R语言时普遍存在缺乏系统学习方法的问题…

R语言---使用cgdsr包下载TCGA数据---笔记整理

原文链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzAxMDkxODM1Ng&mid2247486492&idx1&sn3a7251244377fdd4b2a3aa5c8cd1131a&chksm9b484ca7ac3fc5b1a21202cf25ff15a8eec434424aa3e48787129fa6f5e66ebe57ffcb631772&scene21#wechat_redirect 一&…

R语言画词云图

词云图大家都很常见,主要是用来展示词语的频次,用来发现突出贡献的词语! 用于词云图的工具很多,但制作过程有些麻烦!今天我们来使用R语言做一下词云图,看看会有什么结果! 软件介绍 R RStudio 词云图教程 1.首先我们准备一个Excel文件,将单词或者词语,以及对应的频…

【教程】使用R语言绘制词云图

哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 最近木易巷在了解R语言&#xff0c;今天给大家分享一下使用R语言绘制出词云图的教程。 什么是R语言 R语言是一个开源的数据分析环境&#xff0c;起初是由数位统计学家建立起来&#xff0c;以更好的进行统计计算和绘图。由于R可…

R语言入门——笔记(二)--包(package)的使用及RStudio的使用,加载包和数据集

一&#xff1a; 1.包&#xff08;package&#xff09;的使用 包是扩展R基本功能的机制&#xff0c;集成了众多函数。如果想使用某些函数而当前R中不存在&#xff0c;就可以找对应函数的包直接使用。 去哪里找包&#xff1f;如何使用包&#xff1f; CRAN: -install.packages…

1. R语言介绍、Rstudio的基本使用、帮助命令、内置数据集

b站课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 腾讯课堂(最新&#xff0c;但是要花钱&#xff0c;我花99元买了&#xff0c;感觉不错&#xff09;&#xff1a;https://ke.qq.com/course/3707827#term_id103855009 本笔记前面的笔记参照b站视频…

【R语言】如何直接调取Wind、iFinD数据接口教程

对于从事经济、金融研究类工作的新人们其实最先遇到的是主流金融终端使用问题。国内的氛围很奇怪&#xff0c;一碰上正儿八经能派上用场的东西业内人士总是讳莫如深&#xff0c;好像别人学去了他就马上失业&#xff0c;听说现在学个最基础的数据接口都动不动要付钱&#xff0c;…

R语言高级数据管理

文章目录 高级数据管理标准差绝对中位差分位数quantile()函数百分位数 数据预处理中心化标准化 &#xff08;Standardization&#xff09;数据中心化和标准化的区别归一化&#xff08;Normalization&#xff09;标准化和归一化 概率函数协方差控制流分支结构重复和循环 自定义函…

用R语言,生成微信聊天记录词云。

首先获取微信聊天记录&#xff1a;并导出为txt文件 基于R语言&#xff1a; #install.packages("jiebaRD") #install.packages("jiebaR") #install.packages("data.table") #install.packages("stringr") #install.packages("rJa…

R语言中自带的一些数据集

在用R语言做数据分析的时候&#xff0c;我们经常需要一些数据做实验&#xff0c;尤其当学会一个新的方法或者算法的时候&#xff0c;就想赶快编程实现一下。那么&#xff0c;问题来了&#xff0c;用什么数据好呢&#xff0c;什么样的数据适合做这种实验呢&#xff1f; 好在R语…

R语言---使用RTCGA包获取TCGA数据---笔记整理

原文链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzAxMDkxODM1Ng&mid2247486585&idx1&sn3035f6420904aad2c8161b362cdeb472&chksm9b484cc2ac3fc5d479fc5bce3d68d4666b763652a21a55b281aad8c0c4df9b56b4d3b353cc4c&scene21#wechat_redirect 1.RTCGA…

R语言实操记录——获取包的三种渠道及安装包的三种方式

R语言 R语言实操记录——获取包的三种渠道及安装包的三种方式 文章目录 R语言一、获取包的三种渠道二、安装包的三种方式2.1、CRAN2.2、Bioconductor2.3、Github注意 一、获取包的三种渠道 渠道1 、CRAN&#xff1a;R语言的官网&#xff0c;里面包含有绝大多部分领域的大部分…

【R语言】2022年末特辑——ggsci包色版最详分享

目录 一、前言二、官方教程2.1 NPG2.2 AAAS2.3 NEJM2.4 Lancet2.5 JAMA2.6 JCO2.7 UCSCGB2.8 d32.9 locuszoom2.10 igv2.11 uchicago2.12 startrek2.13 tron2.14 futurama2.15 rickandmorty2.16 simpsons2.17 gsea2.18 material 三、讨论 一、前言 部分新手直接化用代码跑出来…

R语言txt文件自定义词云图

在R语言中获取txt文件文本&#xff0c;并进行词频统计&#xff0c;然后自定义词云图。 先获取txt文本 wordfreqs read.table("E:\\Python实训\\哔哩哔哩弹幕爬取\\dan_mu.txt",encoding "UTF-8")这是事先用python爬虫准备好的B站番剧&#xff08;排球少…

基于R语言分析自带数据集heart

本文将对R语言中自带的heart数据集进行分析。本文会包含所有代码&#xff0c;尽可能多的使用有关可视化的函数以及数据分析的模型。 一、研究概述 1.1 数据集简介 数据集来源&#xff1a;使用R语言 glmpalh 包中自带的数据heart.data 数据集内容&#xff1a;该数据集描述了45…

摸鱼的小贤在瞎搞R - R语言内置数据集的使用

系列文章目录 1-R语言的安装及使用&#xff08;还没写这个&#xff0c;太简单了不太想写&#xff09; 2-R语言内置数据集的使用 …… 文章都会尽量详细&#xff0c;话多请见谅&#xff08;我是话痨 文章目录 系列文章目录1. 查看包中有哪些数据集2. 查看某一特定数据集的基本信…

ChatGPT对高校人才培养模式的挑战与应对策略思考

酷吗&#xff1f;输入指令后直接就能生成一大串代码&#xff0c;即使不懂相关技术也能玩转编程&#xff0c;这就是ChatGPT赋予你的“新能力”&#xff0c;除了写代码&#xff0c;ChatGPT还能帮你执行各种五花八门的任务。 AI工具如ChatGPT在行业中的广泛应用对于行业的人才结…

如何使用SMS向客户传递服务信息?指南在这里!

关键词&#xff1a;SMS运营、实时聊天客服、聊天机器人 SMS作为一种客户服务策略正变得越来越流行。了解如何使用它&#xff0c;并在此获得一些有用的模板。 通过SMS发送客户服务信息是提升客户体验的一种强有力的方式&#xff0c;并使客户获得超出他们预期的快乐。它是最近许…

SMS Call---发送短信和打电话的方法

发送短信的方法 有两种方法可以实现发送短信&#xff0c;其一是使用intent-startActivity&#xff0c;URI数据格式为"smsto:num"&#xff0c;调用的action为Intent.ACTION_SENDTO&#xff1a; Uri uri Uri.parse("smsto:5554"); Intent it new Intent(I…