ITPub博客

首页 > > > R语言高速unnest

R语言高速unnest

作者:浪花小雨滴 时间:2019-10-30 17:23:11 0 删除 编辑

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书,《R语言数据高效处理指南》(黄天元)【简介_书评_在线阅读】 - 当当图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。


熟悉tidyr::unnest函数的应该知道,在使用column-list的时候,需要把其还原为本来的数据框就需要这个函数(这种操作想必在SQL里面也不曾存在,是高级操作)。我以前做的时候数据量比较少,因此没有意识到海量数据的时候它可能会慢。但是一个帖子给了一些启示,并编写了一个函数来加速这个过程,因此这里援引一下:

library(pacman)
p_load(rlang,data.table,tidyverse)
unnest_dt <- function(tbl, col) {

  tbl <- as.data.table(tbl)

  col <- ensyms(col)

  clnms <- syms(setdiff(colnames(tbl), as.character(col)))

  tbl <- as.data.table(tbl)

  tbl <- eval(
    expr(tbl[, as.character(unlist(!!!col)), by = list(!!!clnms)])
  )

  colnames(tbl) <- c(as.character(clnms), as.character(col))

  tbl
}

原链接为:

https:///post/a-faster-unnest/​

以后需要高速unnest的时候,一定会回来取用。

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39978