美文网首页learning_R
#R的学习笔记06

#R的学习笔记06

作者: ks_c | 来源:发表于2021-02-03 21:00 被阅读0次

    title: "R的学习笔记04"
    author: "ks_c"
    date: "2021/2/2"
    output: html_document


    <font face="宋体">以下为R数据分析指南与速查手册 第四章的内容</font>


    tidyverse包做探索性数据分析

    • 数据变化
      1 filter
      2 select
      3 arrange
    • 多表融合
    • 增加新列
      1 mutate
      2 mutate与group_by
      3 mutate_all
      4 mutate_at
      5 mutate_if
    • 数据汇总
      1 summarise与group_by
      2 summarise_all
      3 summarise_at
      4 summarise_if
    • 函数复用
    • 可视化

    1. 数据变换总结

    • 行去重:distinct(.data, …, .keep_all = FALSE)
    • 行筛选:filter()
    • 列筛选:select()
    • 行排序:arrange()
    • 长转宽:spread(data, key=键所在列, value=键值所在列)
    • 宽转长:gather(data, 需要转换的各列, key = “新建的键名”, value = “新建的键值名”)
    • 列合并:unite(data, col=新列, 需要合并的各列, sep = "_", remove = TRUE)
    • 列分裂:separate(data, col, into=c(“列1”,“列2”,…), sep = “[^[:alnum:]]+”)
    • 嵌套与取消嵌套:nest()、unnest()

    1.1 filter

    filter进行行筛选,各逗号分隔的条件需同时满足,常用筛选条件有:

    >, >=, <, <=, !=(不等于) , == ,near() , is.na(), %in%(前者是否在后者里面,返回值为T/F), between(x, left, right)

    由于可能存在舍入误差,浮点数最好不用 == 而用near。

    &, |, !, xor()(异或)

    1.2 select

    进行列筛选,各逗号分隔的条件任满足其一即可,常用辅助筛选函数有:

    :(从a列到b列), - (除了这些列)
    starts_with()、ends_with()、contains()、matches()、num_range()、one_of()、everything()、last_col()

    1.3 arrange

    对行进行排序,可以有多个排序条件,
    降序:desc()

    2. 多表融合总结

    将两个或多个表,通过共同的列联结起来,常见的操作包括:

    • 左联结:left_join(x, y, by = NULL)
    • 右联结:right_join(x, y, by = NULL)
    • 内联结:inner_join(x, y, by = NULL)
    • 全联结:full_join(x, y, by = NULL)
    • 半联结:semi_join(x, y, by = NULL)
    • 反联结:anti_join(x, y, by = NULL)
    • 多个表的联结:list(x1, x2, x3,…) %>% reduce(····_join, by = NULL)

    将具有相同列的两个表或多个表,对行进行集合操作

    • intersect(x, y, …)
    • union(x, y, …)
    • union_all(x, y, …)
    • setdiff(x, y, …)
    • setequal(x, y, …)
    • list(x1, x2, x3,…) %>% reduce(*_join, by = NULL)

    3. 增加新列总结

    对原有的列进行运算,得到长度与数据行数相同的新列。

    分组与取消分组:group_by()、ungroup()

    • 增加新列:

      • mutate()
      • mutate_all(.tbl, .funs, …)
      • mutate_at(.tbl, .vars, .funs, …)
      • mutate_if(.tbl, .predicate, .funs, …)
    • 仅保留新列:

      • transmute()
      • transmute_all()
      • transmute_at()
      • transmute_if()

    4. 数据汇总总结

    分组对列进行统计汇总,统计汇总函数一般含一个数据参数,这个参数为代表多个观测的向量,返回单个数值。当返回多个值时,可以将其转换为list.

    数据汇总(一般会与分组结合):
    summarise()
    summarise_all(.tbl, .funs, …)
    summarise_if(.tbl, .predicate, .funs, …)
    summarise_at(.tbl, .vars, .funs, …, .cols = NULL)
    所有列采用相同汇总函数时也可用map()、map_*(),但其无法和group_by结合
    对summarise系列函数,若返回长度大于1的向量,可用list将结果包围。

    5. 函数复用总结

    单变量
    返回列表:map(.x, .f, …)
    返回 * 类型的向量:map_(.x, .f, …)( 可以是lgl、chr、int、dbl、raw)
    得到输出、打印、保存等其他动作:walk()
    返回数据框:map_dfc(.x, .f, …), map_dfr(.x, .f, …, .id = NULL)
    条件筛选,返回列表:map_if(.x, .p, .f, …, .else = NULL)、map_at(.x, .at, .f, …)
    2维变量:map2(.x, .y, .f, …)、map2_(.x, .y, .f, …)等(没有if和at)
    p维变量:pmap(.l, .f, …)、pmap_
    (.x, .y, .f, …)等(没有if和at)
    递归复用:map_depth(.x, .depth, .f, …, .ragged = FALSE)

    6. 可视化总结

    ggplot图层:

    ggplot(data = <DATA>) +
      <GEOM_FUNCTION>(
        mapping = aes(<MAPPINGS>),
        stat = <STAT>,
        position = <POSITION>
      ) +
      <COORDINATE_FUNCTION> +
      <FACET_FUNCTION> +
      <SCALE_FUNCTION> +
      <THEME_FUNCTION>
    

    GEOM_FUNCTION
    离散变量频次:geom_bar
    连续变量频次:geom_histogram、geom_freqpoly、 geom_density
    离散vs连续:geom_boxplot、geom_violin、并排geom_histogram
    离散vs离散:geom_tile(热力图,颜色深浅表示频次),geom_count(点的大小表示频次)、并排geom_bar
    连续vs连续:geom_point、geom_bin2d(方形封箱)、geom_hex(6边形封箱)、geom_smooth、geom_line、geom_density2d
    3变量: geom_contour(aes(z = z))、geom_tile(aes(fill = z))、geom_raster(aes(fill = z))

    MAPPINGS
    x、y轴:x、y
    点或边框的颜色:color (颜色字符串)
    填充颜色:fill (颜色字符串)
    形状:shape(最多6种,代表形状的数字)
    点的大小、线的粗细:size (毫米为单位的数字)
    透明度:alpha
    线型:linetype(整数或字符串: 0 = blank, 1 = solid, 2 = dashed, 3 = dotted, 4 = dotdash, 5 = longdash, 6 = twodash)
    边框粗细:stoke
    group
    STAT
    “count”
    “bin”
    “identity”
    “boxplot”

    POSITION
    “stack”:堆积
    “identity”:独立重叠
    “dodge”:侧面并列
    “fill”:堆积归一
    “jitter”:扰动
    “dodge2”

    COORDINATE_FUNCTION
    coord_flip:坐标翻转
    coord_fixed(ratio = 1/2):固定坐标比例
    coord_polar:极坐标
    coord_cartesian:笛卡尔坐标(默认,可修改坐标范围)coord_cartesian(xlim = c(0, 5))
    FACET_FUNCTION
    单变量分面:facet_wrap
    双变量分面:facet_grid

    点的形状代码

    相关文章

      网友评论

        本文标题:#R的学习笔记06

        本文链接:https://www.haomeiwen.com/subject/xxuytltx.html