文章目录
前言
tibble数据框的简单介绍
tibble数据框是tidyverse等一系列包里面新兴的数据格式,tibble数据框对比普通的R语言数据框有着更加语法更加美观,操作更见简便等优点,可以实现对数据的选择,分组,数据拉长,数据拉宽等操作,下面介绍一下dplyr
等一系列包里面对tibble包的一些操作函数。
提示:本片文章绝大多数内容来自R4SD这本书籍,网站如下:https://r4ds.hadley.nz/
一、tibble数据集
首先直接在脚本框输入tibble类型的数据集时,不会像普通数据集一样显示该数据集的全部数据,而是从上到下显示数据框的观测和变量的数量,然后输出前十个观察和输出框能够容纳下的变量的数量。(以tidyverse的flights数据集为例)在每个观察下面还会显示该变量下值的类型,在最下面还会输出未显示的观察数量和变量数量。
二、tibble 的一些操作函数
1.glimpse()函数
glimpse
函数能够返回tibble数据框的全部变量名,也就列名,对flight数据集使用glimpse
函数结果如下。
2.filter函数
该函数主要是对函数的列进行操作,从而筛选出合适的符合条件的观测。
代码如下(示例):
df_1 <- flights
df_1|>
filter(month == 1,day ==1)
df_1 |>
filter(year == 2013)
df_1 |>
filter(month %in% c(1,2))
### 表达式month %in% c(1,2)等价于month == 1|month == 2.
### 函数filter可以筛选数据框内符合条件的行
我们首先将flights数据集赋值给df_1,然后使用|>
运算将df_1赋值给filter(|>
运算可以理解为<-
的反向操作,将左边的变量作为参数输入到右边。)最后filter
函数里面给出筛选条件当满足条件的观察将会被输出。
3. arrange函数
arrange
函数主要是依照列对数据框进行排序也可以通过对对应的列增加desc
方法来对列进行倒叙排序,在该函数里面含有多个列名是将会从左到右实现分级排序。
代码如下:
df_1 |>
arrange(year, month, day, dep_time)
### 当函数中存在一组列名的时候将对每个列名进行分级排列。
df_1|>
arrange(desc(dep_time))
### 函数方法desc()将对括号里面的对应列进行倒叙排序
4. distinct函数
对数据框进行固定变量搜索唯一值。
代码如下:
flights |>
distinct()
flights |>
distinct(origin, dest)
### 函数将筛选唯一含有唯一值的origin和dest并且只输出origin和dest
### 使用参数.keep_all = TRUE在筛选出唯一的列值的时候同时保留其他的列.
df_1 |>
distinct(origin,dest,.keep_all = T)
5. select函数
select
函数对指定列的名的进行筛选。也可以使用-
加上列名进行筛除,代码如下:
df |>
select(year,mon,day)
# 进行筛选
df |>
select(-year)
# 进行筛除
6.pivot_longer函数
该函数的主要作用是将数据拉长示例如下:
df <- tribble(
~id, ~bp1, ~bp2,
"A", 100, 120,
"B", 140, 115,
"C", 120, 125
)#构建一个数据框
df |>
pivot_longer(
cols = bp1:bp2, #选择列变量
names_to = "measurement",#创建新的变量
values_to = "value" # 新的变量
)
#> # A tibble: 6 × 3
#> id measurement value
#> <chr> <chr> <dbl>
#> 1 A bp1 100
#> 2 A bp2 120
#> 3 B bp1 140
#> 4 B bp2 115
#> 5 C bp1 120
#> 6 C bp2 125
函数可以将变量名作为分类变量放入表格里面并且原来变量的值转移到新的变量里面。也就是将数据向下拉长,增加观测。
6.pivot_wider函数
该函数和pivot_longer
函数是相反的操作,可以将数据的分类变量作为变量名将数据拉宽。
df |>
pivot_longer(
cols = bp1:bp2,
names_to = "measurement",
values_to = "value"
)|>
pivot_wider(
names_from = "measurement", #列变量名来自
values_from = "value" #值的来源
)
# A tibble: 3 × 3
# id bp1 bp2
# <chr> <dbl> <dbl>
#1 A 100 120
#2 B 140 115
#3 C 120 125