本文目录一览:
R语言读写excel文件2021.2.24
以下有三种方法:
根据需求读取对应的sheet1
综合来看,openxlsx的方法简单粗暴,而且经多名骨灰级玩家证明,罕有bug出现。乃R语言和Excel读取的绝对神器。不过笔者也发现,openxlsx包仅适用于.xlsx格式文件。前期的xls格式文件可能还需要前两种方法来读取。除了以上三种方法,还有类似的包如xlsx、readxl。此处依旧强推神器openxlsx。首先,.xlsx文件存储行数大大提升,从65536行数据提升到了104万条数据。其次,它十分便捷,函数所需参数较少。当然最后的最后,它可能需要的R的版本比较的新。
用 openxlsx包 写入Excel
R语言读数据
杀杀
记录一些R语言读入数据的方法还有可能遇到的问题~
读入数据时,需要先了解数据文件的类型(也就是看后缀)。一般就能够知道数据的类型和分隔符等信息。
另外,如果能够用excel预览一下数据的话,可以先看看数据是否有行列名。有些数据会有两列的行名,如基因名-基因id-表达值······,特殊的数据需要额外的处理。
还需要注意一下matrix和data.frame的数据结构,matrix中只能有一种数据类型,这意味着如果在读入数据时不进行合适的处理,R会将数值强行读成字符型,造成读数据的错误。
当用excel存储过之后,再用R处理时,会提示你行名重复,其实根本没有重复。因此建议不要用excel保存这种数据,一定要编辑可以使用notepad++或者ultra edit等软件。
-----正题分割线-----
read.xx的函数是R的内置函数,可以直接读取,并且设置一些参数
这些函数读取后都默认为data.frame,如果需要矩阵请使用as.matrix转换。
一定要赋值,不然R语言会把大大的矩阵print出来。
如果是没怎么见过的类型:
这个函数会自动识别你的分隔符,并且把第一行设为列名,但是没办法指定行名,需要读入以后自己设置
跟read.delim类似,可以读各种类型的文件以及非常大的文件:
读取后默认是一种data.table的数据类型,需要通过as.matrix/as.data.frame转换后使用。
像perl语言一样,逐行读取数据具有很大的优势
(万一文件超多行对吧)对于那种几个G的文件,全部读进来可能会导致你的电脑死机,所以我们可以先读几百行进来看看,或者分批读取,这样不会占用电脑太大内存,读取方法和上文的一次性读入有所不同-随便找个文件举例:
接下来继续读入数据,比如说我现在想读4行,因为文件是txt类型,所以分隔设为/t
第一种:把excel中所有sheet的表格读入为data.frame,并分别命名为每个sheet的名称
---请忽略硬核打码
第二种:把excel中所有sheet的表格读入为矩阵,并放进一个list中
R语言批量读文件
批量读excel的xlsx文件原理是和读其它文件一样的。
学到了新的会持续更新哟~
如何才能拿R读取Excel文件
R语言读取excel文件文件其实有很多的包可以做到,最常用的就是xlsx和readxl, 首先,安装并载入读取excel文件所用的包:
install.packages("xlsx") library(xlsx)
或者,
install.packages("readxl") library(readxl)
两个包的基本介绍
xlsx是用R把excel文件中的工作表以data.frame的格式读入R语言,他有两个常用函数,其中read.xlsx2通常会比read.xlsx读取的速度更快一些,因为它的好多工作是利用Java完成的,所以速度有所提升,但是在读取子数据集的时候没有read.xlsx稳定性好。
read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL, startRow=NULL, endRow=NULL, colIndex=NULL, as.data.frame=TRUE, header=TRUE, colClasses=NA, keepFormulas=FALSE, encoding="unknown", ...)
read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1, colIndex=NULL, endRow=NULL, as.data.frame=TRUE, header=TRUE, colClasses="character", ...)
注:
sheetIndex:工作表单号
rowIndex:行号,就是你想读取那些行
header:表头,就是有没有列名。比如姓名,年龄,学号等
startRow:比如你想从第五行开始读取,就设置startRow = 5
readxl包可以用来读取xls和xlsx格式的文件
read_excel(path, sheet = 1, col_names = TRUE, col_types = NULL, na = "", skip = 0)
注:
sheet:读取的工作表
col_names: 如果是FALSE的话,就表示第一行不是列名,R会自动给你取成x1,x2...
colt_types: blank,numeric,date,text
na: 缺失值,默认空着的单元是缺失值,你也可以自己指定,比如认为999是缺失值
R语言读写excel文件
R语言读写excel表格
读文件常用的几种方法:
1. library(readxl)
data - read_excel("name.xlsx",sheet=1,col_names = T,col_types = NULL ,na="", skip=0)
2. data - read.table("name.txt",header = T,sep = "")
3. read.csv(file.choose(),header = F,sep = ",")#逗号可删除
data -data.frame(data$a,data$b)#合并成数据框结构
写入文件:
write.table(data,file = "data.csv",sep=",",row.names = F, col.names = F ,quote = F)
R读取excel文件的最佳方式
众所周知,excel生成的文件后缀是xls或者xlsx,早期读取这样的文件,要么就另存为csv格式,要么就用readxls或者xlsx这样的R包,可能会遇到Rjava报错的问题。现在有了一个优秀的解决办法,就是rio包。
它能够兼容含有多个工作簿的xlsx文件,非常巴适。
用R语言的内置数据组个列表。
它就变成了含有多个工作簿的电子表格哦。
有import函数可以读取各种类型的文件,但对于xlsx它只识别第一个工作簿。用import_list读取即可
r语言中怎么读取excel数据
#64位机下,.xls和.xlsx文件用相同方法
library(RODBC)
con - odbcConnectExcel2007("D:/R/RODBC.xlsx") #64位机下方法
sqlTables(con) #查看该xlsx文件中有哪些表
# TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
# 1 D://R//RODBC.xlsx NA 商品信息$ SYSTEM TABLE NA
# 2 D://R//RODBC.xlsx NA 补充说明$ SYSTEM TABLE NA
# 3 D://R//RODBC.xlsx NA 销售信息$ SYSTEM TABLE NA
table_test - sqlFetch(con,"销售信息")
table_test
odbcClose(con)