工作中做数据分析的时候,偶尔会需要将一些 Excel 文件导入到R中使用,每次都转换成 csv 文件也不现实,而且不管是保存成 csv 还是 txt 文件,都只能保存当前活动工作表。
这个时候,熟悉如何使用R语言读取 Excel 文件就显得很重要啦,不过还是建议数据交换使用 csv 文件,具有通用性和准确性。
1、readxl 包
又是 Hadley Wickham 大神的杰作!
主要包含read_excel()\read_xls()\read_xlsx() \ excel_sheets() 三个函数,其中:
read_excel():读取 xls 和 xlsx 文件;read_excel() 调用,以根据文件扩展名和文件本身的顺序 excel_format() 确定 path 是 xls 还是 xlsx。如果您更了解并希望避免此类猜测,请直接使用 read_xls() 和 read_xlsx()。
excel_sheets():列出Excel电子表格中的所有工作表;
使用示例:
> #加载包
> library(readxl)
> #读取Excel文件第一个sheet数据
> data <- read_excel('/Users/user/Desktop/庆余年人物.xlsx',sheet = 1)
> #读取Excel文件内sheetname='大宗师'的数据
> data <- read_excel('/Users/user/Desktop/庆余年人物.xlsx',sheet = '大宗师')
> #读取Excel文件内前3行数据
> data <- read_excel('/Users/user/Desktop/庆余年人物.xlsx',n_max = 3)
> #读取Excel文件内A1:B3块数据
> data <- read_excel('/Users/user/Desktop/庆余年人物.xlsx',sheet = 1,range = 'A1:B3')
> #读取Excel文件内A:B列数据
> data <- read_excel('/Users/user/Desktop/庆余年人物.xlsx',sheet = 1,range = cell_cols("A:B"))
> #列出Excel文件中的所有工作表;
> excel_sheets('/Users/user/Desktop/庆余年人物.xlsx')
[1] "人物" "大宗师"
2、openxlsx 包
提示:仅使用于 .xlsx 文件!!!
提示:仅使用于 .xlsx 文件!!!
提示:仅使用于 .xlsx 文件!!!
重要的话说三遍!!!
重要的话说三遍!!!
重要的话说三遍!!!
使用示例:
# 加载包
library(openxlsx)
# 默认读取sheet1的数据
data <- read.xlsx('/Users/user/Desktop/庆余年人物.xlsx')
# 读取Excel文件内sheetname='大宗师'的数据
data <- read.xlsx('/Users/user/Desktop/庆余年人物.xlsx',sheet = '大宗师')
参数设置同 readxl 大同小异,具体可以使用 help(openxlsx) 函数参看参数设置。
help(openxlsx)
read.xlsx(xlsxFile, sheet = 1, startRow = 1, colNames = TRUE,
rowNames = FALSE, detectDates = FALSE, skipEmptyRows = TRUE,
skipEmptyCols = TRUE, rows = NULL, cols = NULL, check.names = FALSE,
namedRegion = NULL, na.strings = "NA", fillMergedCells = FALSE)
网上还有很多方法去读取 Excel 文件,例如:xlsx 包、 ROBDC 包、复制剪切板等,但相比较实用性和简洁性来说,我觉得 readxl 包和 openxlsx 包都是我目前工作中的首选,毕竟,高效、简洁才是王道。
通过三遍文章,把工作中R语言获取数据的几个情形都梳理了一遍,希望对大家有帮助,因为不管是数据分析还是数据建模,数据都是最重要的,希望大家在数据工作中,都能够顺利。
历史系列文章见下:
R语言获取数据1:从文本文件获取数据
R语言获取数据2:连接数据库
网友评论