R语言学习——R读取txt、csv、xls和xlsx格式文件
最近项目中运用到了R读取文件数据,所以把相关好用的、经过验证的方法总结了一下,有效避免下次入坑。
1. R读取txt文件
使用R
读取txt
文件直接使用read.table()
方法进行读取即可,不需要加载额外的包。
read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))
- 1
注意,此处的na.strings = c("NA")
的意思是文件中的缺失数据都是用NA
进行表示;在读取文本文件时,默认的分割符号为空格。具体的参数设置可参照如下:
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)
2. R读取csv文件
使用R
读取csv
文件和读取txt
文件很类似,使用的是read.csv()
方法,两者参数的使用大部分是一样的。
read.csv("/home/slave/test.csv", header=T, na.strings=c("NA"))
在读取csv文件时,分割符为“,”
(这句基本是废话,大家懂得);具体的参数设置可参考如下:
read.csv(file, header = TRUE, sep = ",", quote = "\"",
dec = ".", fill = TRUE, comment.char = "", ...)
3. R读取xls和xlsx文件
读取xls
和xlsx
有很多方法,但是这里面的很多方法也不是特别好用,例如RODBC
包中的读取xls
方法就不太好用,有时还会出现各种各样的问题。在进行了一番入坑探索之后,找到了两个相对好用的读取xls
文件的包,下面我将分别进行说明。
- gdata
install.packages("gdata")
library(gdata)
read.xls("/home/slave/test.xls",sheet=1,na.strings=c("NA","#DIV/0!"))
其中sheet=1
参数的意思是读取第一个sheet中的内容;na.strings=c("NA","#DIV/0!")
将"NA"
和 "#DIV/0!"
都作为缺失数据表示,read.xls()
方法的具体参数设置可参考如下:
read.xls(xls, sheet=1, verbose=FALSE, pattern, na.strings=c("NA","#DIV/0!"),
..., method=c("csv","tsv","tab"), perl="perl")
read.xls()
方法只是gdata
包中的一个方法,gdata
包中还有一些有用的方法,例如xls转csv
,xls转txt
等,在这里进行一些列举:
xls2csv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2tab(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2tsv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2sep(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ...,
method=c("csv","tsv","tab"), perl="perl")
gdata
包有着很多的功能,但是它对其他的包的依赖很多,可能会出现各种不可预知的问题,下面介绍一个较少依赖的包。
- readxl
install.packages("readxl")
library(readxl)
read_excel("/home/slave/test.xls",sheet=1,na="NA")
这块需要注意的一点是na="NA"
和其他读取时的格式略有不同,下面列出了具体的参数设置:
read_excel(path, sheet = 1, col_names = TRUE, col_types = NULL, na = "", skip = 0)
注意:以上的两个方法都可以对xls和xlsx
进行读取。
至此,已将我们在R中常用到的读取文件数据方法以及介绍完毕,下面就让我们一起动手实验吧。^_^
参考:
- http://www.cnblogs.com/xianghang123/archive/2012/06/06/2538274.html
- https://cran.r-project.org/web/packages/gdata/index.html
- https://github.com/hadley/readxl
--------------------- 本文来自 华仔的逆袭 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/tb3039450/article/details/52557200?utm_source=copy
R语言学习——R读取txt、csv、xls和xlsx格式文件的更多相关文章
- Java读取excel 支持xls 和 xlsx格式
1.工具类public class InExcelTool { //根据指定位置单独读取一个 public static String getContent(String file, int page ...
- R语言学习-基础篇1
###第一周:R基础 rm(list = ls()) #ctr+L###矩阵相乘,函数diag()a=matrix(1:12,nrow=3,ncol=4)b=matrix(1:12,nrow=4,n ...
- R语言学习笔记:小试R环境
买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言学习 第十篇:操作符
运算符是R语言中最基础的存在,熟悉运算符的使用,是熟练使用R处理数据的基础,操作符,顾名思义,是对数据进行运算的符号,R有自己的一套操作符,实现变量的赋值,引用,运算等功能. 一,赋值符号 为变量赋值 ...
- ABAP upload file(*.txt *.csv *.xls)
转自:http://blog.csdn.net/jy00873757/article/details/8534492 在SAP我们经常会用到*.txt, *.csv, *.xls三种文件格式 *.TX ...
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
分享: 腾讯微博 新浪微博 搜狐微博 网易微博 腾讯朋友 百度贴吧 豆瓣 QQ好友 人人网 作者:王春天 原文地址:http://www.cnblogs.com/spring_ ...
- python处理xls、xlsx格式excle
一.windows下读取xls格式文件,所需模块xlrd.xlw 1.下载安装包 xlrd地址:https://pypi.org/project/xlrd/#files xlwt地址:https:// ...
- C# 将DataGridView中显示的数据导出到Excel(.xls和.xlsx格式)—NPOI
前言 https://blog.csdn.net/IT_xiao_guang_guang/article/details/104217491 本地数据库表中有46785条数据,测试正常 初次运行程 ...
随机推荐
- flask(十)使用alembic,进行数据库结构管理,升级,加表,加项
1.安装扩展,在虚拟环境中安装 alembic,不懂可以去看pycharm的系列文章. 2.初始化, 使用 Alembic 前需要通过 alembic init 命令创建一个 alembic 项目,该 ...
- 2019.1.22 zigbee test
1传输测试 频谱仪设置: sigfox 模块串口设置: 自动选择对应型号 Test step: PS:发送TX指令 AT$cw=波特率,通道,uint 这里有个问题--不应该只发送一次 ------- ...
- php 易忽略问题
- 强大的Grafana worldping插件
安装worldping插件: 官方插件地址 查看安装说明,在grafana server上执行命令,完成后重启grafana server,重启,请注意,要重启 重启grafana service g ...
- SWIFT Scan QRCode
SWIFT中扫描QRCode代码如下,照着敲一次再看下API的注释应该就没问题了. import UIKit import Foundation import AVFoundation class V ...
- jvm 方法区
方法区在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中.类型信息是由类加载器在类加载时从类文件中提取出来的.类(静态)变量也存储在方法区中. jvm实现的设计者决定了类型信息的内部 ...
- 人脸对齐matlab实现-FaceAlignment 3000fps
前言 最近研读了孙剑团队的Face Alignment at 3000fps via Regressing Local Binary Features这篇paper,基于matlab进行实现. 实现原 ...
- AngularJS的简单订阅发布模式例子
控制器之间的交互方式广播 broadcast, 发射 emit 事件 类似于 js中的事件 , 可以自己定义事件 向上传递直到 document 在AngularJs中 向上传递直到 rootScop ...
- MVC的好处 演示
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- HDU 1251:统计难题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意不难理解,就是先输入不知道多少个字符串,然后用一个空行结束这个输入,然后接下来不知道多少行再 ...