美文网首页R. python新手日记R语言从零开始R数据读取 清理
R语言第二章数据处理⑤数据框列的转化和计算

R语言第二章数据处理⑤数据框列的转化和计算

作者: 柳叶刀与小鼠标 | 来源:发表于2018-12-10 00:14 被阅读160次

    目录

    R语言第二章数据处理①选择列
    R语言第二章数据处理②选择行
    R语言第二章数据处理③删除重复数据
    R语言第二章数据处理④数据框排序和重命名
    R语言第二章数据处理⑤数据框列的转化和计算

    =========================================

    正文

    本篇描述了如何计算R中的数据框并将其添加到数据框中。一般使用dplyr R包中以下R函数:

    Mutate():计算新变量并将其添加到数据表中。 它保留了现有的变量。
    Transmutate():计算新列但删除现有变量。
    同时还有mutate()和transmutate()的三个变体来一次修改多个列:
    Mutate_all()/ transmutate_all():将函数应用于数据框中的每个列。
    Mutate_at()/ transmutate_at():将函数应用于使用字符向量选择的特定列
    Mutate_if()/ transmutate_if():将函数应用于使用返回TRUE的谓词函数选择的列

    • mutate:通过保留现有变量来添加新变量,通过保留现有列来添加新列(sepal_by_petal):
    library(tidyverse)
    my_data <- as_tibble(iris)
    my_data
    my_data %>% 
      mutate(sepal_by_petal_l = Sepal.Length/Petal.Length)
    
    • transmute:通过删除现有变量来创建新变量,删除现有列,添加新列(sepal_by_petal):
    my_data %>%
      transmute(
        sepal_by_petal_l = Sepal.Length/Petal.Length,
        sepal_by_petal_w = Sepal.Width/Petal.Width
        )
    
    • 一次修改多个列

    函数mutate_all()/ transmutate_all(),mutate_at()/ transmutate_at()和mutate_if()/ transmutate_if()可用于一次修改多个列。

    简化格式如下:

    # Mutate variants
    mutate_all(.tbl, .funs, ...)
    mutate_if(.tbl, .predicate, .funs, ...)
    mutate_at(.tbl, .vars, .funs, ...)
    
    # Transmutate variants
    transmute_all(.tbl, .funs, ...)
    transmute_if(.tbl, .predicate, .funs, ...)
    transmute_at(.tbl, .vars, .funs, ...)
    

    tbl:一个tbl数据框
    funs:由funs()生成的函数调用列表,或函数名称的字符向量,或简称为函数。predicate:要应用于列或逻辑向量的谓词函数。 选择predicate为或返回TRUE的变量。

    • 转换特定列

    mutate_at():转换按名称选择的特定列:

    my_data2 %>%
      mutate_at(
        c("Sepal.Length", "Petal.Width"),
        funs(cm = ./2.54)
        )
    
    • mutate_if():转换由谓词函数选择的特定列。
    • mutate_if()对于将变量从一种类型转换为另一种类型特别有用。
    # 将所有因子列转化成字符
    my_data %>% mutate_if(is.factor, as.character)
    # 将左右数字列四舍五入
    my_data %>% mutate_if(is.numeric, round, digits = 0)
    

    相关文章

      网友评论

        本文标题:R语言第二章数据处理⑤数据框列的转化和计算

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