本文目录一览:

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)