R语言的数据输入
既然了解了R语言的基本数据类型,那么如何将庞大的数据送入R语言进行处理呢?送入的数据又是如何在R语言中进行存储的呢?处理这些数据的方法又有那些呢?下面我们一起来探讨一下。
首先,数据输入最直接最直观的方法就是键盘输入,在上面几篇都已经讲到,利用c创建向量,利用matrix创建矩阵,利用data.frame创建数据框等,但是我们处理的数据往往比较多,键盘输入在面对如此庞大的数据时显然不现实,当然你可以花费好几天来输入数据而且保证不出错除外,而且待处理的一般都存储在Excel,网页,数据库其他中介中,因此:如何大批量无差错高效率地读取数据就成为R语言首先要解决的问题。
第一:如果自己学习写代码,加载R语言中本身自带的数据包cars等,加载的方法跟其他包相同,具体代码如下:
> install.packages("car")
> library(cars)
第二:读取外部数据一般用read.***( ),***代表要读取的文件类型,下面详细解释了每种类型的文件的读取:
read.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 = "", ...)
其中:
参数file:代表要读去的文件名以及文件路径,如果当前工作路径就是需要读取的文件的存储路径,那么可以直接写文件名,记得要用双引号括起来。那么如何设置工作路径呢?首先我们查看当前的工作路径用getwd( )函数,设置工作路径的话用setwd(" 工作路径")函数,注意,在设置工作路径时,需要把路径中所有的 "\" 改成 “\\”。具体操作如下代码:
> getwd() #查看当前工作路径
[1] "E:/赵志博/R"
> setwd("E:\赵志博") #错误的设置方式
Error: '\? is an unrecognized escape in character string starting ""E:\?
> setwd("E:\\赵志博") #正确的设置方式
> getwd() #查看设置后的工作路径
[1] "E:/赵志博"
当工作路径设置完成后,便可以直接读取工作路径里面的文件而不需要加文件的存储位置。如代码所示,当前工作路径为"E:/赵志博",在该路径下创建了文件“123.txt”,可以直接读取文件,但是在“D:/”创建了新的文件“456.txt”,便不能直接读取,需要加上完整的文件路径,路径同样需要将"\" 改成 “\\”。
mydata <- read.table("123.txt",sep = ',')
> mydata
V1 V2 V3
1 1 2 3
2 4 5 6
3 7 8 9
> mydataD <- read.table("456.txt",sep = ',')
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") : cannot open file '456.txt': No such file or directory
> mydataD <- read.table("D:\\456.txt",sep = ',')
> mydataD
V1 V2 V3
1 1 2 3
2 4 5 6
3 7 8 9
每次都要设置路径,对有些场合来说未免太过麻烦,因此R提供了一种可以直接选择文件位置的函数,read.***(file.choose()),例如读取txt数据:
mydatachoose <- read.table(file.choose()) #自由选取数据来读取,但是file.choose( )的参数好像没有
参数header:主要确定需要读取的文件是否自己已经设置了列名,默认值为FALSE。这个需要解释一下:上节我们已经讲过data.frame类型,那么read.***( )的返回值也是数据框类型,自然是按列填充的数据框格式,因此列名就显得尤为重要,相当于Excel的表头部分,行号系统会根据1~N的顺序排好,当然也可以修改。
参数sep:主要确定需要读取的文件中,各个字符的分割方式,一般有空格分割,逗号分割等,确定了分割方式,才能保证将数据读取为自己想要的样子。
常见用的参数就是这些,其他的原理都差不多,如果有需要自行学习。
1.txt文件:mydata <- read.table( )
2.Excel格式数据:mydata <- read.xlsx( ),在使用这个函数之前,需要先安装xlsx包,安装方法跟其他包的安装方法一致。一般来说,读取xlsx文件速度较慢,通常将Excel文件保存为csv格式,然后再进行读取 mydata <- read.csv( )
3.XML数据:读取XML数据前先要载入XML包,然后使用 mydata <- xmlRoot(xmlTreeParse("***.xml"))来读取
关于数据的读取就先介绍到这里,其他有用的着的再单独学习。
R语言的数据输入的更多相关文章
- R语言 我要如何开始R语言_数据分析师
R语言 我要如何开始R语言_数据分析师 我要如何开始R语言? 很多时候,我们的老板跟我们说,这个东西你用R语言去算吧,Oh,My god!什么是R语言?我要怎么开始呢? 其实回答这个问题很简单,首先, ...
- R语言进行数据预处理wranging
R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with R packages:tidyr dplyr Ground rules ...
- R语言进行数据预处理
R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with Rpackages:tidyr dplyr Ground rules l ...
- 用R语言提取数据框中日期对应年份(列表转矩阵)
用R语言提取数据框中日期对应年份(列表转矩阵) 在数据处理中常会遇到要对数据框中的时间做聚类处理,如从"%m/%d/%Y"中提取年份. 对应操作为:拆分成列表——列表转矩阵——利用 ...
- R语言读写数据
R语言读写数据 一般做模型的时候,从外部的excel中读入数据,我现在常用的比较多的是read_csv(file) 读入之前先把excel数据转化成.csv格式 同样的把结果输出来的时候用的是writ ...
- R语言外部数据读取
0 引言 使用R语言.Python等进行数据处理的第一步就是要导入数据(也可以使用UCI数据集),下文主要根据R语言的帮助文档来介绍外部文件数据的导入方法和注意事项.下面先附上一些指令. 1 格式r ...
- R语言|数据特征分析
对数据进行质量分析以后,接下来可通过绘制图表.计算某些特征量等手段进行数据的特征分析. 主要通过分布分析.对比分析.统计量分析.周期性分析.贡献度分析.相关性分析等角度进行展开. 2.1 分布分析 分 ...
- R语言:数据的分割-计算-整合(split-apply-aggregate)
当获取到原始数据时,我们通常的做法是对该数据进行分割成小片段,然后对各小片段进行计算统计,最后整合成最终的数据.这是统计学里数据处理的一般规律. R语言为我们提供了相应的函数来分别处理这三个阶段任务. ...
- R语言将数据框转成xts
R语言初学者,不怎么会,今天碰到的问题,查了好久才找到,原来如此简单 尼玛,下次再忘记抽自己3巴掌
随机推荐
- 【java】开发中常用字符串方法
java字符串的功能可以说非常强大, 它的每一种方法也都很有用. java字符串中常用的有两种字符串类, 分别是String类和StringBuffer类. Sting类 String类的对象是不可变 ...
- Textarea输入字数限制(兼容iOS&安卓)
最近在做一个微信公众号的页面,其中有对textarea做输入字数限制,而且需要兼容iOS和安卓手机,下面直接贴代码: <!DOCTYPE html> <html lang=" ...
- adb shell 操作sqlite数据库
程序中数据库文件路径在/data/data/<package name>/databases/ adb shell 进入adb命令行 ls 列出当前文件夹下所有文件 假设有一个名为a ...
- THE ELEMENTS OF C# STYLE
|前言 程序员其实艺术家,灵动的双手如行云流水般在键盘上创造着生命的奇迹,我认为代码是有灵魂的.同一个模块,在每个程序员手中所缔造出来的是不相同的. 最终,这个模块或者实现了最初的业务,但是回过头看看 ...
- 怎样使用 virt-viewer 远程访问 qemu 虚拟机 - 转载
How to connect to a VM hosted on QEMU remotely using virt-viewer I couldn’t find comprehensive artic ...
- Windows10 家庭版没有本地组策略解决方法
windows 家庭版默认是没有本地组策略的, win+R运行gpedit.msc提示不存在 下面的代码保存一个cmdorbat 脚本文件add_gpedit.cmd, 并执行 add_gpedit. ...
- Java中字符数组、String类、StringBuffer三者的相互转换
一.StringBuffer与String的相互转换 1.将StringBuffer转换成String StringBuffer类成员toString函数可将其转换成String类型. StringB ...
- 安全之路 —— C/C++开3389端口(远程终端)
简介 在渗透测试中开启对方电脑的3389端口是入侵者加入对方计算机账户后要想直接控制对方计算机的必须步骤,即开启对方计算机的远程终端功能,不同的Windows系统要开启3389需要修改不同的注册表项, ...
- MySQL二进制日志文件Binlog的三种格式以及对应的主从复制中三种技术
二进制日志文件Binlog的格式主要有三种: 1.Statement:基于SQL语句级别的Binlog,每条修改数据的SQL都会保存到Binlog里面. 2.ROW:基于行级别,每一行数据的变化都会记 ...
- gdb调试:
1 简介 GDB(GNU Debugger)是GCC的调试工具.其功能强大,现描述如下: GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的 ...