R语言第一章数据处理基础①读取EXEL表格数据
2018-12-23 本文已影响164人
柳叶刀与小鼠标
目录
R语言第一章数据处理基础①读取EXEL表格数据
R语言在读取Exel数据上表现不太好,虽然也有一些不错的包,但是体验很差,所以我个人一般都是把Exel转化成csv或者txt来读取,而现在可以在CRAN上使用readxl 1.2.0。 在http://readxl.tidyverse.org上了解有关readxl的更多信息。
readxl软件包可以很容易地从Excel文件中获取表格数据,并使用代码而不是鼠标点击来获取R。 它支持.xls格式和基于XML的.xlsx格式。 readxl易于在所有操作系统上安装和使用。 因此,它没有外部依赖,例如Java或Perl,其中一些R包读取Excel文件。
- 安装
从CRAN安装最新版本的最简单方法是安装整个tidyverse。
# install.packages("readxl")
library(readxl)
-
主要参数:
- 读取实例,根据sheet或者sheetname读取
setwd('D:/R.Rstudio/R/R-3.5.1/library/readxl/extdata')
xls_eg <- read_excel("datasets.xls")
xls_eg
xls_iris <- read_excel("datasets.xls", sheet =1)
xls_iris
- 只读取其中部分列
xls_iris <- read_excel("datasets.xls", sheet =1,range = cell_cols("B:D"))
xls_iris
- 只读取其中部分行
xls_iris <- read_excel("datasets.xls", sheet =1,n_max = 5)
xls_iris
- 只读取其中部分内容
xls_iris <- read_excel("datasets.xls", sheet =1,range = "A1:C5")
xls_iris
- 是否将第一行作为列名
xls_iris <- read_excel("datasets.xls", sheet =1,col_names = FALSE,n_max = 5)
xls_iris
xls_iris <- read_excel("datasets.xls", sheet =1,
n_max = 5,col_names = c("x1","x2","x3","x4","y"))
xls_iris
- 设置列数据类型参数
xls_iris <- read_excel("datasets.xls", sheet =1,
n_max = 5,col_types = c("numeric","numeric","numeric","numeric","text"))
xls_iris
- .name_repair函数
.name_repair是传递col_names更灵活的方法。 您可以通过两种主要方式表达您想要的内容:
修改列名,作为一个函数,它接收原列名并返回新名称:
以下是指定.name_repair的两个示例。
## pass custom function to implement "lower_snake_case"
my_custom_name_repair <- function(nms) tolower(gsub("[.]", "_", nms))
read_excel(
readxl_example("datasets.xlsx"), n_max = 3,
.name_repair = my_custom_name_repair
)
read_excel(
readxl_example("datasets.xlsx"), sheet = "chickwts", n_max = 3,
.name_repair = ~ substr(.x, start = 1, stop = 3)
)
# A tibble: 3 x 5
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<dbl> <dbl> <dbl> <dbl> <chr>
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
# A tibble: 3 x 2
weight feed
<dbl> <chr>
1 179 horsebean
2 160 horsebean
3 136 horsebean
[图片上传中...(image.png-5f15e8-1545504902116-0)]
该文同样在我的微信公众号更新,请订阅:左手柳叶刀右手小鼠标