精华内容
参与话题
问答
  • dplyr

    2019-07-15 14:32:00
    dplyr包可用于处理 R 内部或者外部的结构化数据,相较于plyr包,dplyr包专注接受 data.frame 对象,大幅提高了速度,并且提供了更稳健的数据库接口。同时,dplyr包可用于操作Spark的dataframe。 官...

    The d is for dataframes, the plyr is to evoke pliers. Pronounce however you like.

    dplyr包可用于处理 R 内部或者外部的结构化数据,相较于plyr包,dplyr包专注接受 data.frame 对象,大幅提高了速度,并且提供了更稳健的数据库接口。同时,dplyr包可用于操作Spark的dataframe。

    官网:https://cran.r-project.org/web/packages/dplyr/index.html

    包中的函数查询:https://cran.r-project.org/web/packages/dplyr/dplyr.pdf

    安装dplyr包

    install.packages("dplyr")

    使用dplyr包

    library("dplyr")

    dplyr包中的重要函数

    -- 根据值选择相应的行   filter()

    -- 对行重新排序  arrange()

    -- 根据列名选择相应的列  select()

    -- 根据已知的列创建新的列  mutate()

    -- 将许多值塌缩为单个描述性汇总  summarize()

    -- 分组 group_by()   这些函数都可以通过 group_by() 衔接起来,该函数改变上述每个函数的作用域,从操作整个数据集到按组与组进行操作。

    使用 nycflights13包中的数据集

    install.packages("nycflights13")

    library("nycflights13")

    使用 filter() 函数过滤

    filter(flights, month == 1, day == 1)    # 过滤数据

    filter(flights, month == 11 | month == 12)   # 逻辑或

    filter(flights, month %in% c(11, 12))  # %in% 判断是否存在;该语句可以替换上面的语句

     

    使用 arrange() 函数对行重新排序

    arrange(flights, desc(arr_delay))    # 按照列 arr_delay 进行降序排列

    使用 select() 函数选择指定列

    select(flights, year, month, day)    # 选择列 year  month  day

    select(flights, year:day)     # 选择 year 和 day 之间的所有列

    select(flights, -(year:day))    # 反向选择 选择 year 和 day 之间的所有列以外的所有列

    select(flights, starts_with("yea"))    # 选择列名以 "yea" 开头的列

    select(flights, ends_with("ear"))    # 选择列名以 "ear" 结尾的列

    select(flights, contains("ea"))    # 选择列名中包含 "ea" 的列

    select(flights, matches("ea"))    # 使用正则表达式  选择列名中匹配到 "ea" 的列

    select(flights, num_range("x", 1:3))    # 使用正则表达式  选择列名中匹配到 "x1" "x2" "x3" 的列

    select(flights, time_hour, air_time, everything())    # 将 time_hour列 和 air_time列 提到前面

    查看 select() 函数的更多内容 ?select()

    rename(flights, tail_num = tailnum)     # 将列名 tailnum 改为 tail_num

    mutate(flights_sml, gain = arr_delay - dep_delay, speed = distance / air_time * 60 )     #  在原数据集flights_sml的基础上添加两列 gain, speed 产生一个新的数据集,原数据集不变。

    transmute(flights, gain = arr_delay - dep_delay, hours = air_time / 60, gain_per_hour = gain / hours)    # 只生成新的3列 gain, hours, gain_per_hour,输出结果中没有元数据集

    transmute(flights, dep_time, hour = dep_time %/% 100, minute = dep_time %% 100)    #  %/% 整除运算;  %% 取余运算

    使用 summarise() 函数对数据进行描述性汇总 结果只输出指定的类 

    常与 group_by() 一起使用 从而实现将数据分组后再统计

    summarize(flights, delay = mean(dep_delay, na.rm = TRUE))      #

    by_day <- group_by(flights, year, month, day)

    summarize(by_day, delay = mean(dep_delay, na.rm = TRUE))

    not_cancelled <- flights %>% filter(!is.na(dep_delay), !is.na(arr_delay))     # 使用管道操作

    not_cancelled %>% group_by(year, month, day) %>% summarize(mean = mean(dep_delay))    # 使用管道操作

     delays %>% filter(n > 25) %>% ggplot(mapping = aes(x = n, y = delay)) + geom_point(alpha = 1/10)

    batting <- as_tibble(Lahman::Batting)

    batting %>% group_by(playerID) %>% summarize(ba = sum(H, na.rm = TRUE) / sum(AB, na.rm = TRUE), ab = sum(AB, na.rm = TRUE)) %>% filter(ab > 100) %>% ggplot(mapping = aes(x = ab, y = ba)) + geom_point() + geom_smooth(se = FALSE)     # 分组 > 汇总 > 过滤 > 绘图

    not_cancelled %>% group_by(dest) %>% summarize(carriers = n_distinct(carrier)) %>% arrange(desc(carriers))    # 分组 > 汇总 > 降序排列

    not_cancelled %>% group_by(year, month, day) %>% summarize(avg_delay1 = mean(arr_delay), avg_delay2 = mean(arr_delay[arr_delay > 0]))    #  分组 > 汇总

    not_cancelled %>% group_by(dest) %>% summarize(distance_sd = sd(distance)) %>% arrange(desc(distance_sd))    # 分组 > 汇总 > 降序排列

    not_cancelled %>% group_by(year, month, day) %>% summarize( first = min(dep_time), last = max(dep_time))    #  分组 > 汇总(取每一组的最大值和最小值)

     

    转载于:https://www.cnblogs.com/0820LL/p/11188746.html

    展开全文
  • dplyr interactions

    2020-12-27 03:05:31
    vroom_str(dplyr::filter(x, cyl == 4)) #> 'tbl_df', 'tbl', and 'data.frame': 11 obs., 3 vars.: #> $model: altrep:false type: character length:11 #> $mpg: altrep...
  • V1 dplyr fix

    2020-12-27 12:22:54
    <div><p>This should fix dplyr filter() that is changed by the version 0.8.0 release of dplyr which is scheduled for February 1, 2019. See ...
  • 分布式dplyr

    2018-08-31 00:17:24
    分布式dplyr提供了对R中的dataframe和分布式dataframe提供了一致的操作接口    

    分布式dplyr提供了对R中的dataframe和分布式dataframe提供了一致的操作接口

     

     

    展开全文
  • <p><code>src_dt</code> assignment at line 181 of rpy/robjects/lib/dplyr.py is no longer viable as of dplyr 0.5, as Hadley has moved this out to the new "dtplyr" package. With this additional ...
  • expanding dplyr episode

    2020-12-09 06:24:12
    It is already a good overview of dplyr's basis functions but I feel like <strong>introducing the concept of joins</strong> would be highly beneficial to the learners. This would give opportunities...
  • dplyr

    2017-03-22 18:59:00
    是Hadley Wickham的新作,...tidyr包的作者是Hadley Wickham, 该包用于“tidy”你的数据,这个包常跟dplyr结合使用。 本文将介绍dplyr包的下述五个函数用法:筛选: filter()排列: arrange()选择: select()变形: ...

    是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口;tidyr包的作者是Hadley Wickham, 该包用于“tidy”你的数据,这个包常跟dplyr结合使用。

    本文将介绍dplyr包的下述五个函数用法:

    筛选: filter()
    排列: arrange()
    选择: select()
    变形: mutate()
    汇总: summarise()
    分组: group_by()
    以及tidyr包的下述四个函数用法:

    gather—宽数据转为长数据;
    spread—长数据转为宽数据;
    unit—多列合并为一列;
    separate—将一列分离为多列;
     dplyr、tidyr包安装及载入

    install.packages("dplyr")
    install.packages("tidyr")

    library(dplyr)
    library(tidyr)
    使用datasets包中的mtcars数据集做演示,首先将过长的数据整理成友好的tbl_df数据:

    mtcars_df = tbl_df(mtcars)
    dplyr包基本操作

     1.1 筛选: filter()

    按给定的逻辑判断筛选出符合要求的子数据集

    filter(mtcars_df,mpg==21,hp==110)

    #  A tibble: 2 x 11
        mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
      <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
    1    21     6   160   110   3.9 2.620 16.46     0     1     4     4
    2    21     6   160   110   3.9 2.875 17.02     0     1     4     4
     1.2 排列: arrange()

    按给定的列名依次对行进行排序:

    arrange(mtcars_df, disp) #可对列名加 desc(disp) 进行倒序

    # A tibble: 32 x 11
         mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
    1   33.9     4  71.1    65  4.22 1.835 19.90     1     1     4     1
    2   30.4     4  75.7    52  4.93 1.615 18.52     1     1     4     2
    3   32.4     4  78.7    66  4.08 2.200 19.47     1     1     4     1
    4   27.3     4  79.0    66  4.08 1.935 18.90     1     1     4     1
    5   30.4     4  95.1   113  3.77 1.513 16.90     1     1     5     2
    6   22.8     4 108.0    93  3.85 2.320 18.61     1     1     4     1
    7   21.5     4 120.1    97  3.70 2.465 20.01     1     0     3     1
    8   26.0     4 120.3    91  4.43 2.140 16.70     0     1     5     2
    9   21.4     4 121.0   109  4.11 2.780 18.60     1     1     4     2
    10  22.8     4 140.8    95  3.92 3.150 22.90     1     0     4     2
    # ... with 22 more rows
     1.3 选择: select()

    用列名作参数来选择子数据集:

    select(mtcars_df, disp:wt)

    # A tibble: 32 x 4
        disp    hp  drat    wt
    *  <dbl> <dbl> <dbl> <dbl>
    1  160.0   110  3.90 2.620
    2  160.0   110  3.90 2.875
    3  108.0    93  3.85 2.320
    4  258.0   110  3.08 3.215
    5  360.0   175  3.15 3.440
    6  225.0   105  2.76 3.460
    7  360.0   245  3.21 3.570
    8  146.7    62  3.69 3.190
    9  140.8    95  3.92 3.150
    10 167.6   123  3.92 3.440
    # ... with 22 more rows
     1.4 变形: mutate()

    对已有列进行数据运算并添加为新列:

    mutate(mtcars_df,
      NO = 1:dim(mtcars_df)[1])  

    # A tibble: 32 x 12
         mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb    NO
       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
    1   21.0     6 160.0   110  3.90 2.620 16.46     0     1     4     4     1
    2   21.0     6 160.0   110  3.90 2.875 17.02     0     1     4     4     2
    3   22.8     4 108.0    93  3.85 2.320 18.61     1     1     4     1     3
    4   21.4     6 258.0   110  3.08 3.215 19.44     1     0     3     1     4
    5   18.7     8 360.0   175  3.15 3.440 17.02     0     0     3     2     5
    6   18.1     6 225.0   105  2.76 3.460 20.22     1     0     3     1     6
    7   14.3     8 360.0   245  3.21 3.570 15.84     0     0     3     4     7
    8   24.4     4 146.7    62  3.69 3.190 20.00     1     0     4     2     8
    9   22.8     4 140.8    95  3.92 3.150 22.90     1     0     4     2     9
    10  19.2     6 167.6   123  3.92 3.440 18.30     1     0     4     4    10
    # ... with 22 more rows
     1.5 汇总: summarise()

    对数据框调用其它函数进行汇总操作, 返回一维的结果:

    summarise(mtcars_df, 
        mdisp = mean(disp, na.rm = TRUE))
    # A tibble: 1 x 1
         mdisp
         <dbl>
    1 230.7219
     1.6 分组: group_by()

    当对数据集通过group_by()添加了分组信息后,mutate(),arrange() 和 summarise() 函数会自动对这些 tbl 类数据执行分组操作。

    cars <- group_by(mtcars_df, cyl)
    countcars <- summarise(cars, count = n()) # count = n()用来计算次数

    # A tibble: 3 x 2
        cyl count
      <dbl> <int>
    1     4    11
    2     6     7
    3     8    14
    tidyr包基本操作

     2.1 宽转长:gather()

    使用gather()函数实现宽表转长表,语法如下:

    gather(data, key, value, …, na.rm = FALSE, convert = FALSE)
    data:需要被转换的宽形表
    key:将原数据框中的所有列赋给一个新变量key
    value:将原数据框中的所有值赋给一个新变量value
    …:可以指定哪些列聚到同一列中
    na.rm:是否删除缺失值

    widedata <- data.frame(person=c('Alex','Bob','Cathy'),grade=c(2,3,4),score=c(78,89,88))
    widedata
      person grade score
    1   Alex     2    78
    2    Bob     3    89
    3  Cathy     4    88
    longdata <- gather(widedata, variable, value,-person)
    longdata
      person variable value
    1   Alex    grade     2
    2    Bob    grade     3
    3  Cathy    grade     4
    4   Alex    score    78
    5    Bob    score    89
    6  Cathy    score    88
     2.2 长转宽:spread()

    有时,为了满足建模或绘图的要求,往往需要将长形表转换为宽形表,或将宽形表变为长形表。如何实现这两种数据表类型的转换。使用spread()函数实现长表转宽表,语法如下:

    spread(data, key, value, fill = NA, convert = FALSE, drop = TRUE)
    data:为需要转换的长形表
    key:需要将变量值拓展为字段的变量
    value:需要分散的值
    fill:对于缺失值,可将fill的值赋值给被转型后的缺失值

    mtcarsSpread <- mtcarsNew %>% spread(attribute, value)
    head(mtcarsSpread)
                     car am carb cyl disp drat gear  hp  mpg  qsec vs    wt
    1        AMC Javelin  0    2   8  304 3.15    3 150 15.2 17.30  0 3.435
    2 Cadillac Fleetwood  0    4   8  472 2.93    3 205 10.4 17.98  0 5.250
    3         Camaro Z28  0    4   8  350 3.73    3 245 13.3 15.41  0 3.840
    4  Chrysler Imperial  0    4   8  440 3.23    3 230 14.7 17.42  0 5.345
    5         Datsun 710  1    1   4  108 3.85    4  93 22.8 18.61  1 2.320
    6   Dodge Challenger  0    2   8  318 2.76    3 150 15.5 16.87  0 3.520
     2.3 合并:unit()

    unite的调用格式如下:

    unite(data, col, …, sep = “_”, remove = TRUE)
    data:为数据框
    col:被组合的新列名称
    …:指定哪些列需要被组合
    sep:组合列之间的连接符,默认为下划线
    remove:是否删除被组合的列

    wideunite<-unite(widedata, information, person, grade, score, sep= "-")
    wideunite
      information
    1   Alex-2-78
    2    Bob-3-89
    3  Cathy-4-88
     2.4 拆分:separate()

    separate()函数可将一列拆分为多列,一般可用于日志数据或日期时间型数据的拆分,语法如下:

    separate(data, col, into, sep = “[^[:alnum:]]+”, remove = TRUE,
    convert = FALSE, extra = “warn”, fill = “warn”, …)
    data:为数据框
    col:需要被拆分的列
    into:新建的列名,为字符串向量
    sep:被拆分列的分隔符
    remove:是否删除被分割的列 

    widesep <- separate(wideunite, information,c("person","grade","score"), sep = "-")
    widesep
      person grade score
    1   Alex     2    78
    2    Bob     3    89
    3  Cathy     4    88
    可见separate()函数和unite()函数的功能相反。

    转载于:https://www.cnblogs.com/awishfullyway/p/6601517.html

    展开全文
  • <p>With <code>dplyr</code> we will do these as follows <pre><code> r library(dplyr) grp_df </code></pre> <p>Now with <code>data.table</code> this is somewhat more complicated <pre><code> r library...
  • dplyr包概述

    2017-03-31 14:15:33
    dplyr
    dplyr包是将原本 plyr 包中的 ddply() 等函数进一步分离强化, 专注接受dataframe对象, 大幅提高了速度, 并且提供了更稳健的与其它数据库对象间的接口.
    0.1.安装
    install.packages("dplyr")
    0.2.使用的数据集
    mtcars
    head(mtcars)
                       mpg cyl disp  hp drat    wt  qsec vs am gear carb
    Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
    Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
    Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
    Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
    Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
    Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
    主要使用
    1.1筛选:filter()
    filter(.data, ...)
    filter_(.data, ..., .dots)


    1.2排列:arrange()
    arrange(df, ...)


    1.3选择:select()
    select(.data, ...)


    select_(.data, ..., .dots)


    rename(.data, ...)


    rename_(.data, ..., .dots)


    1.4变形: mutate()


    1.5汇总: summarise()


    2分组动作 group_by()


    3连接符 %.%
    展开全文
  • <p>When I installed it anyway and the loaded <code>skimr, loading <code>dplyr</code> second failed with <pre><code>Package ‘dplyr’ version 0.8.0.1 cannot be unloaded: Error in unloadNamespace...
  • New dplyr Cheat Sheet

    2020-12-26 19:52:24
    <p>Dplyr is a library in R to perform various data manipulation tasks with data frame like objects <p>Instant Answer Page: https://duck.co/ia/view/dplyr_cheat_sheet</p> 该提问来源于开源项目:...
  • R dplyr,sparklyr,strings 文档
  • 熟悉R的朋友都会知道,dplyr包是对原始的数据集进行清洗、整理以及变换的有力武器之一。但是其使用会局限于你需要有打开R/R studio或者通过R脚本来执行dplyr。对于这个问题,今天即将需要介绍的dplyr-cli就能很好的...
  • r语言函数dplyr 按列分析数据是R的一大优势。 但是,如果您是Tidyverse用户,并且想要跨多个列运行一个函数,该怎么办? 从dplyr 1.0开始,将为此提供一个新功能:cross across(). 让我们来看看。 当本文发表...
  • Translate plyr to dplyr?

    2020-12-28 03:31:20
    <div><p>Here is a good example where I could update from plyr code to dplyr (from 4.7 Drawing maps): <pre><code> s library(plyr) library(ggplot2) ia </code></pre> <p>to <pre><code> s library(dplyr) ...
  • dplyr实例使用案例,主要用于清洗数据,整理数据使用。是不可多得的改进包
  • t know if this is a <code>dplyr</code> issue or an <code>RMySQL</code> issue, but I get an error when I try to connect a <code>dplyr</code> <code>tbl</code> to an <code>RMySQL</code> table. ...
  • Run `dplyr` package examples

    2020-12-29 23:52:06
    <div><p>Make sure FastR can install <code>dplyr</code> and run <code>dplyr</code> examples. <p>Some issues: <code>dplyr</code> uses <code>Rcpp, which under some circumstances (e.g. in function <code>...
  • dplyr包笔记

    2018-03-17 16:51:00
    dplyr包是R语言数据处理的神器,这里记录一点刚学到的东西。 以下操作基于R语言自带数据集"mtcars". 变量选取: select starts_with(): starts with a prefix ends_with(): ends with a prefix contains(): conta...
  • R语言dplyr包实操

    2020-06-25 09:00:00
    1. dplyr简介dplyr是R语言的数据分析包,类似于python中的pandas,能对dataframe类型的数据做很方便的数据处理和分析操作。最初我也很奇怪dplyr这个奇怪的名...
  • t use the row_number() function from dplyr without explicitly loading dplyr. <p>This works: <pre><code> library(tidygraph) library(ggraph) library(dplyr) play_erdos_renyi(10, 0.5, directed = ...
  • 用于pandas dataframe的dplyr式管道操作
  • dplyr学习笔记

    千次阅读 2015-11-26 11:55:38
    #数据清理 ——dplyr package加载包 library(dplyr) library(hflights) #hflights是2011年从休斯顿起飞的航班创建本地数据框 tbl_df用于创建一个”local data frame”,相当于一个包装器,可以把data frame,sql数据...
  • 下面小编就为大家带来一篇关于数据处理包dplyr的函数用法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • dplyr包介绍学习

    千次阅读 2018-03-27 11:37:22
    dplyr包:plyr包的替代者,专门面对数据框,将ddplyr转变为更易用的接口%&gt;%来自dplyr包的管道函数,其作用是将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值步骤,可以大量减少内存中的对象,...
  • dplyr 文档翻译

    2015-05-29 13:19:33
    http://ijiaer.com/r-learn-dplyr/
  • dplyr处理关系数据

    2020-02-17 22:30:24
    第9章 dplyr处理关系数据 写在前面——plyr包 join()函数 join(x = ,y = ,by=NULL,type="left",match="all") 作用:联合两个数据框,和SQL中连接方式一样, 包括内连接(inner-交集)和外连接(左连接left、右连接right...

空空如也

1 2 3 4 5 ... 20
收藏数 1,719
精华内容 687
关键字:

dplyr