6 min read

技术:高效数据处理

技术 系列导航

1 技术:Poisson分布、回归Python实现 2017-12-20
2 技术:beta系数理解 2017-12-21
3 技术:Python List剔除重复值 2017-12-21
4 技术:t-SNE处理高维数据可视化 2017-12-21
5 技术:用R语言进行文件系统管理 2017-12-21
6 技术:fct_lump分箱使用方法 2017-12-22
7 技术:F1分数为什么可以看不平衡样本的预测能力 2017-12-27
8 技术:Fisher的一个矩阵预算 2017-12-27
9 技术:case_when使用方法 2017-12-28
10 技术:Python接口函数 2017-12-28
11 技术:fct_relevel调整对照组,批量的方案 2017-12-30
12 技术:python中变量批量处理集成方案 2017-12-30
13 技术:Python接口函数-中台 2018-01-03
14 技术:使用pbd包进行debug 2018-01-03
15 技术:R实现随机分组 2018-01-04
16 技术:jiebaR包做文本清洗 2018-01-05
17 技术:r_WACC使用说明 2018-01-05
18 技术:使用switchhost安装host 2018-01-05
19 技术:Git的下载问题 2018-01-06
20 技术:新闻爬虫 2018-01-07
21 技术:Scalable Data Processing in R 2018-01-08
22 技术:使用git创建一个自己的本地仓库 2018-01-11
23 技术:dashboard构建,来自yihui的包 2018-01-12
24 技术:最大似然估计再理解 2018-01-12
25 技术:itchat包提取微信好友公开数据 2018-01-13
26 技术:do函数和biglm包 2018-01-17
27 技术:Imputer后X少了一列 2018-01-18
28 技术:mac连接mysql,理论上win7也可以 2018-01-19
29 技术:ggpubr提高作图效率 2018-01-20
30 技术:t-SNE理论部分补充 2018-01-22
31 技术:RMarkdown的使用技巧 2018-01-30
32 技术:通过anova检验,理解R2、R_adj.2、F值 2018-01-31
33 技术:ggridges 山峦图 学习笔记 2018-02-02
34 技术:Tidyverse使用技巧 2018-02-02
35 技术:XGBoost 学习笔记 2018-02-02
36 技术:分布变离散,或者纠正skew 2018-02-02
37 技术:rsq在R中自定义函数 2018-02-03
38 技术:Jupyter实战 2018-02-13
39 技术:美化与定制 2018-02-21
40 技术:数据对比可视化指南 2018-02-22
41 技术:功能体验 2018-02-26
42 技术:模型优化技巧 2018-03-05
43 技术:原理与应用 2018-03-06
44 技术:模型与可视化 2018-03-08
45 技术:美化与交互指南 2018-03-11
46 技术:高效操作指南 2018-03-14
47 技术:用法与优化技巧 2018-03-17
48 技术:效率提升指南 2018-03-18
49 技术:问题排查技巧 2018-03-18
50 技术:高效操作指南 2018-03-19
51 技术:方法与代码示例 2018-03-21
52 技术:进阶技巧与优化 2018-03-21
53 技术:实战示例 2018-03-22
54 技术:效率与规范指南 2018-03-24
55 技术:dplython包测评 2018-03-25
56 技术:原理与实现 2018-04-02
57 技术:原理与应用解析 2018-04-03
58 技术:实战指南 2018-04-05
59 技术:核心语法与函数整理 2018-04-05
60 技术:复利计算与应用 2018-04-08
61 技术:简单规则模型解析 2018-04-14
62 技术:高效代码设计指南 2018-04-25
63 技术:原理与应用学习笔记 2018-04-29
64 技术:实战指南 2018-04-29
65 技术:原理与应用 2018-05-01
66 技术:表格格式化指南 2018-05-02
67 技术:原理与应用介绍 2018-05-08
68 技术:高效文本拼接 2018-05-11
69 技术:方法与实践学习笔记 2018-05-12
70 技术:方法与工具 2018-05-12
71 技术:功能解析 2018-05-17
72 技术:高效数据输入 2018-05-21
73 技术:基础模型与方法 2018-05-22
74 技术:功能与使用体验 2018-05-26
75 技术:特征筛选学习笔记 2018-05-29
76 技术:实战技巧 2018-05-30
77 技术:建模思路解析 2018-06-03
78 技术:策略与实战 2018-06-03
79 技术:数据展示指南 2018-06-04
80 技术:包与环境配置指南 2018-07-14
81 技术:高效操作指南 2018-07-19
82 技术:方法与案例解析 2018-07-24
83 技术:统计建模学习笔记 2018-07-24
84 技术:展示技巧与原则 2018-08-10
85 技术:数据采集实战技巧 2018-08-21
86 技术:指标设计学习笔记 2018-09-20
87 技术:建模流程实战 2018-10-01
88 技术:大规模数据探索 2018-10-20
89 技术:文本提取与分析 2018-10-20
90 技术:原理与R实现实战 2018-10-21
91 技术:学习资源获取技巧 2018-10-23
92 技术:深度学习模型实战 2018-10-24
93 技术:实战指南 2018-10-30
94 技术:分析与展示指南 2018-11-03
95 技术:图片编辑与转换 2018-11-03
96 技术:安装与使用基础学习笔记 2018-11-07
97 技术:非结构化数据处理 2018-11-29
98 技术:表格美化技巧 2018-12-13
99 技术:分类数据可视化 2018-12-24
100 技术:流程图绘制技巧 2018-12-24
101 技术:自动化设置 2018-12-28
102 技术:协作与版本控制 2018-12-29
103 技术:pipeline设计 2018-12-30
104 技术:Git历史记录清理 2018-12-31
105 技术:AUC指标对比 2019-01-01
106 技术:时间序列可视化 2019-01-01
107 技术:变量命名工具指南 2019-01-02
108 技术:网页自动化截图 2019-01-02
109 技术:配置与优化 2019-01-03
110 技术:原理与应用 2019-01-07
111 技术:语法与核心概念 2019-01-14
112 技术:R包徽章设计 2019-01-15
113 技术:项目结构设计 2019-01-21
114 技术:文本分类基础任务 2019-01-22
115 技术:线性与非线性模型 2019-01-22
116 技术:有效性验证 2019-01-27
117 技术:评估与应用 2019-01-29
118 技术:循环神经网络入门 2019-01-30
119 技术:长短期记忆网络入门 2019-01-30
120 技术:for循环示例 2019-02-03
121 技术:基础到进阶 2019-02-06
122 技术:查询与整合 2019-02-06
123 技术:方法与案例 2019-02-14
124 技术:R包高效开发指南 2019-02-20
125 技术:解析与操作 2019-02-20
126 技术:训练与预测 2019-02-25
127 技术:原理与代码 2019-02-26
128 技术:GitHub个人访问令牌(PAT)设置 2019-03-04
129 技术:方法与工具 2019-03-07
130 技术:文本特征提取示例 2019-03-08
131 技术:基础任务示例 2019-03-18
132 技术:条形图与表头设计 2019-03-20
133 技术:连续与分类变量差异 2019-03-30
134 技术:思路与方法 2019-04-08
135 技术:方法与工具 2019-04-15
136 技术:多格式读取 2019-04-16
137 技术:方法与工具 2019-05-11
138 技术:Git/GitHub/GitLab 2019-05-13
139 技术:命令与操作 2019-05-19
140 技术:协作与版本控制 2019-05-26
141 技术:语法与实践 2019-06-28
142 技术:功能与API 2019-07-13
143 技术:安装与使用 2019-07-24
144 读《未来简史》:技术与未来 2019-09-14
145 技术:高效数据处理 2019-10-09
146 技术:性能优化技巧 2019-10-12
147 技术:配置与运维 2019-10-29
148 技术:原理与经典模型 2019-12-25
149 技术:构建到发布流程 2019-12-26
150 技术:方法与案例 2019-12-27
151 技术:命令与自动化 2019-12-30
152 技术:Pandas数据处理实战指南 2020-01-19
153 技术:特征工程之目标编码学习笔记 2020-01-20
154 技术:文档编写与美化 2020-01-28
155 技术:核心算法与应用 2020-01-29
156 技术:流程图绘制技巧 2020-01-29
157 技术:DataCamp课程笔记 2020-01-31
158 技术:Python实用代码片段合集 2020-01-31
159 技术:自动化构建流程 2020-02-02
160 技术:自动化工作流配置 2020-02-04
161 技术:高效查找代码与项目 2020-02-11
162 技术:代码环境快速部署 2020-02-24
163 技术:USD数据分析论文收录暨GitBook发布 2020-05-02
164 游记:西安博物院(5)西汉器物工艺到新莽技术应用 2020-10-01
165 技术:Causal Forest 2021-03-18
166 技术小团队人才培养思考:压力・复盘・沉淀 2024-05-21
167 BJ Fogg模型:从说服技术理论到行为设计实践 2024-11-24
168 管理视角:技术团队的核心交付是什么 2025-02-13
169 研读毛选:核心技术三大特征 2025-03-28

本文于2026-03-31更新。 如发现问题或者有建议,欢迎提交 Issue

1 map

map函数相当于for循环,但是不需要注意for(){}的缩进,而且代码写起来,简单些。

mtcars %>%
  group_by(cyl) %>%
  nest() %>%
  mutate(p = map(data,
                 function(x){
                   p <- x %>% ggplot(aes(x = mpg, y = disp)) +
                     geom_point() +
                     labs(
                       x = "Miles/(US) gallon",
                       y = "Displacement (cu.in.)",
                       subtitle = paste("cyl =",cyl),
                       title = "The scatter	diagram for Miles/(US) gallon by Displacement (cu.in.)",
                       caption = "Data source: mtcars"
                     ) +
                     theme_minimal()
                   print(p)}))

purrr::map可以批量跑函数,但是会出现报错,这个时候possiblysafely可以给报错的打个标签,继续跑 rdata.lu BlogWickham et al. (n.d.) 在第四和第五部分主要解释了这两个函数。

2 safely()函数

# Create safe_readLines() by passing readLines() to safely()
safe_readLines <- safely(readLines)

# Call safe_readLines() on "http://example.org"
safe_readLines("http://example.org")

# Call safe_readLines() on "http://asdfasdasdkfjlda"
safe_readLines("http://asdfasdasdkfjlda")

Wickham (2018a) 给出了safely()函数的例子。 显然第二个例子不是一个网页,因此会报错,因此两个例子的区别在于,

  • 成功了,因此$result非空,$error
  • 失败了,因此$result空,$error非空

2.1 map 和 safely

urls <- list(
  example = "http://example.org",
  rproj = "http://www.r-project.org",
  asdf = "http://asdfasdasdkfjlda"
)
# Define safe_readLines()
safe_readLines <- safely(readLines)

# Use the safe_readLines() function with map(): html
html <- map(urls, safe_readLines)

# Call str() on html
str(html)

# Extract the result from one of the successful elements
map(html, "result")

# Extract the error from the element that was unsuccessful
map(html, "error")

这里提供了提取resulterror的方式 (Wickham 2018b)

3 possibly函数解释

possibly_some_function = possibly(some_function, otherwise = "something wrong here")是safely的简单版本。

4 pwalk批量操作

看了一下 Wickham and Grolemund (2017) 的书,真是不错啊,不小心重新看一下, 如获至宝。 例如,

Wickham and Grolemund (2017, 336)提到批量保存ggplot图片的方式。

library(ggplot2)
    plots <- mtcars %>%
      split(.$cyl) %>%
      map(~ggplot(., aes(mpg, wt)) + geom_point())
    paths <- stringr::str_c(names(plots), ".pdf")
pwalk(list(paths, plots), ggsave, path = getwd())
  • 使用了splitmap函数,批量使用函数ggplot
  • str_c用于图片命名,功效类似于paste
  • 最后最强的是pwalk,给予一个list,然后使用ggsave

5 rerun: resample

library(purrr)
10 %>% rerun(rnorm(5))
10 %>%
  rerun(x = rnorm(5),y= rnorm(5)) %>%
  map_dbl(~ cor(.x$x, .x$y))

6 map替代mutate

FAY (2017) 提供的例子。

library(purrr)
airquality %>% glimpse()

shapiro.test: Performs the Shapiro-Wilk test of normality.

airquality %>% map(shapiro.test)

7 keep替代filter

airquality %>%
  map(shapiro.test)%>%
  keep(~ .x$p.value > 0.05)

FAY (2017) 提供的例子。 keep业务上非常方便,直接选择shapiro.test反馈的结果.$...之一作为筛选条件,不需要建立data.frame再使用filter函数。

8 map_if替代mutate_if

map_if(iris, is.numeric, shapiro.test)

map_if allows you to map only on numeric variables in your data.frame

因此map功效远大于mutatemap将每个columns当成一个element。 FAY (2017) 提供的例子。

numbers <- list(11, 12, 13, 14)
is_even <- function(x){
  !as.logical(x %% 2)
}
map_if(numbers, is_even, sqrt)

map_if函数的例子来自 Rodrigues (2017)

9 map_at

map_at(numbers, c(1,3), sqrt)

map_at函数的例子来自 Rodrigues (2017)

10 transpose函数

这里主要介绍transpose函数(Wickham 2018d)

例如

nested_list <- list(
   x1 = list(a = 1, b = 2),
   x2 = list(a = 3, b = 4)
)

当我们想要提取x1中的a时,我们需要写nested_list[[x1]][[a]],按着正序写的。 但是当我们对listnested_list使用transpose函数后,可以倒序写,transpose(nested_list)[[a]][[x1]]。 因此当我们的需要提取一个list中,非常inside的数据时,并且,都是统一命名,例如a,这个方法会非常管用。

# Define save_readLines() and html
safe_readLines <- safely(readLines)
html <- map(urls, safe_readLines)

# Examine the structure of transpose(html)
str(transpose(html))

# Extract the results: res
res <- transpose(html)[["result"]]

# Extract the errors: errs
errs <- transpose(html)[["error"]]

这里可以看到,以resulterror的list顺序排在了前面,不是原来的examplerprojasdf

# Initialize some objects
safe_readLines <- safely(readLines)
html <- map(urls, safe_readLines)
res <- transpose(html)[["result"]]
errs <- transpose(html)[["error"]]

# Create a logical vector is_ok
is_ok <- map_lgl(errs, is_null)

# Extract the successful results
res[is_ok]

# Extract the input from the unsuccessful results
urls[!is_ok]

最后一步就提取出来那一个元素出了问题urls[!is_ok](Wickham 2018c)

10.1 transposemodify_depth

numbers_with_error <- list(1, 2, 3, "spam", 4)
numbers_with_error
safe_sqrt <- safely(sqrt, otherwise = NA_real_)
safe_result_list <- numbers_with_error %>% map(safe_sqrt)
safe_result_list
transposed_list <- transpose(safe_result_list)
transposed_list
transposed_list %>%
    modify_depth(2, is_null)

modify_depth可以直接使用函数作用于对应的层级 Rodrigues (2017)

10.2 map的替换

mylist <- 
    list(
        list01= list(
            var01 = 1:3
            ,var02 = 1:5
            ,var03 = 1:7
        )
        ,list02= list(
            var01 = 1:9
            ,var02 = 1:11
            ,var03 = 1:13
        )
        
    )
str(mylist)

library(purrr)
mylist %>% 
    transpose() %>% 
    .$var02 %>% 
    unlist %>% 
    table()

# or TBT8's answer
# https://stackoverflow.com/a/53213468/8625228

mylist %>% 
    map(~ .[['var02']] == 1) %>% 
    unlist %>% 
    sum

11 Set names of list elements

name_element <- c("sqrt()", "ok?")
transposed_list %>% set_names(name_element)

set_names函数来自purrr包,详见 复制一个data.frame

12 reduce反馈最后一个值

numbers
reduce(numbers, `*`)

还可以批量完成计算。 reduce函数的例子来自 Rodrigues (2017)

set.seed(123)
mat1 <- matrix(rnorm(10), nrow = 2)
mat2 <- matrix(rnorm(10), nrow = 2)
mat3 <- matrix(rnorm(10), nrow = 2)
list_mat <- list(mat1, mat2, mat3)
reduce(list_mat, `+`)

想象从每一个矩阵的对应位置\(A_{i,j}\)取出一个值,作为一个list,一起完成+的计算。 reduce函数的例子来自 Rodrigues (2017)

12.1 reduce 多表合并

df1 <- as.data.frame(mat1)
df2 <- as.data.frame(mat2)
df3 <- as.data.frame(mat3)
list_df <- list(df1, df2, df3)
reduce(list_df, dplyr::full_join)

reduce函数的例子来自 Rodrigues (2017)

因此可以多表read进行合并。

as.list(list.files()) %>% map(function(x) read.csv(x)) %>% reduce(rbind)

13 accumulateaccumulate_right

accumulate(numbers, `*`)
accumulate_right(numbers, `*`)
  • accumulate是按左向右滚动
  • accumulate_right是按右向左滚动 例子来自 Rodrigues (2017)
1:3 %>% accumulate(`+`)
1:10 %>% accumulate_right(`*`)

# From Haskell's scanl documentation
1:10 %>% accumulate(max, .init = 5)

# Understanding the arguments .x and .y when .f
# is a lambda function
# .x is the accumulating value
1:10 %>% accumulate(~ .x)
1:10 %>% accumulate(~ 1)
# .y is element in the list
1:10 %>% accumulate(~ .y)

library(dplyr)
library(ggplot2)

set.seed(123)
rerun(5, rnorm(100)) %>%
  set_names(paste0("sim", 1:5)) %>%
  map(~ accumulate(., ~ .05 + .x + .y)) %>%
  map_dfr(~ data_frame(value = .x, step = 1:100), .id = "simulation") %>%
  ggplot(aes(x = step, y = value)) +
    geom_line(aes(color = simulation)) +
    ggtitle("Simulations of a random walk with drift")

rerun参考 5

14 相关系数\(\rho\)和p value分析

FAY (2017) 提供的例子。 使用函数tidy_comb_all(Fay 2018)进行。

library(tidystringdist)
comb <- tidy_comb_all(names(airquality))
comb
bulk_cor <-
  comb %>%
  pmap(~ cor.test(airquality[[.x]], airquality[[.y]])) %>%
  map_df(broom::tidy) %>%
  bind_cols(comb, .)
bulk_cor

[[.x]] 这种写法非常优秀,达到了哈希匹配的方式。

15 partial提前预设参数,进行函数封装

FAY (2017) 提供的例子。

titanic <- read_csv("../../../picbackup/titanic.csv")
set.seed(20)
train <- rerun(20, sample_frac(titanic, size = 0.8))
validation <- map(train, ~ anti_join(titanic, .x))
  • rerun: 实现bootstrap的功能。
  • anti_join: 实现train and test split,并且不用建立index,一行代码完成。
map_int(validation, nrow) %>% every(~ .x == 262)

检验每个测试集的样本量一样。

library(rpart)
rpart_pimped <- partial(rpart, formula = survived ~ sex, method = "class")
res <- map(train, ~ rpart_pimped(data = .x))
prediction <- map2(validation, res, ~ predict(.y, .x, type = "class"))
w_prediction <- map2(validation, prediction, ~ mutate(.x, prediction = .y))
library(caret)
conf_mats <- map(w_prediction, ~ confusionMatrix(.x$prediction, .x$survived))

Error:dataandreferenceshould be factors with the same levels.这里有报错。 应该是\(y\)\(\hat y\)长度不一样。

map_dbl(conf_mats, ~ .x$byClass["Sensitivity"]) %>% every(~ .x > 0.8)

16 someevery

mtcars %>%
    some(is.infinite)
  • 这使得infinity的检验可以产生类似于anyNA的效果。
  • some(): 列表中的某些元素是否满足要求? 返回结果TRUE/FALSE
  • every(): 列表中的每个元素是否满足要求?(邬书豪 2017)

17 Use list, UDF in map*

my_summarise_f函数参考 Rodrigues (2018)

my_summarise_f <- function(dataset, cols, funcs){
  dataset %>%
    summarise_at(vars(!!!cols), funs(!!!funcs))
}
mtcars %>%
  my_summarise_f(quos(mpg, drat, hp), quos(mean, sd, max))
data_list = list(mtcars, iris)

    cols_mtcars = quos(mpg, drat, hp)
    cols_iris = quos(Sepal.Length, Sepal.Width)

cols_list = list(cols_mtcars, cols_iris)

    funcs_mtcars = quos(mean, sd, max)
    funcs_iris = quos(median, min)

funcs_list = list(funcs_mtcars, funcs_iris)

map2(data_list,
     cols_list,
     my_summarise_f, funcs = quos(mean, sd, max))


pmap(
  list(
    dataset = data_list,
    cols = cols_list,
    funcs = funcs_list
  ),
  my_summarise_f)

18 反馈 NULL 的解决情况

map 反馈 NULL 的情况有些讨论Github Issue 231,参考Stack Overflow使用 if else 完成。

具体参考github的代码。

参考文献

FAY, Colin. 2017. “A Crazy Little Thing Called purrr - Part 6 : Doing Statistics.” 2017. https://colinfay.me/purrr-statistics/.
Fay, Colin. 2018. Tidystringdist: String Distance Calculation with Tidy Data Principles. https://CRAN.R-project.org/package=tidystringdist.
Rodrigues, Bruno. 2017. “Lesser Known Purrr Tricks.” 2017. http://www.brodrigues.co/blog/2017-03-24-lesser_known_purrr/.
———. 2018. “Mapping a List of Functions to a List of Datasets with a List of Columns as Arguments.” 2018. http://www.brodrigues.co/blog/2018-01-19-mapping_functions_with_any_cols/.
Wickham, Hadley. 2018a. “Writing Functions in r: Creating a Safe Function.” 2018. https://campus.datacamp.com/courses/writing-functions-in-r/advanced-inputs-and-outputs?ex=2.
———. 2018b. “Writing Functions in r: Using Map Safely.” 2018. https://campus.datacamp.com/courses/writing-functions-in-r/advanced-inputs-and-outputs?ex=3.
———. 2018c. “Writing Functions in r: Working with Errors and Results.” 2018. https://campus.datacamp.com/courses/writing-functions-in-r/advanced-inputs-and-outputs?ex=5.
———. 2018d. “Writing Functions in r: Working with Safe Output.” 2018. https://campus.datacamp.com/courses/writing-functions-in-r/advanced-inputs-and-outputs?ex=4.
Wickham, Hadley, and Garrett Grolemund. 2017. R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. O’Reilly Media, Inc.
Wickham, Hadley, Charlotte Wickham, Nick Carchedi, and Tom Jeon. n.d. Writing Functions in r. DataCamp. https://www.dreatacamp.com/courses/writing-functions-in-r.
邬书豪. 2017. “R for Data Science之purrr包(上).” 2017. https://zhuanlan.zhihu.com/p/32293221.

技术 系列导航

1 技术:Poisson分布、回归Python实现 2017-12-20
2 技术:beta系数理解 2017-12-21
3 技术:Python List剔除重复值 2017-12-21
4 技术:t-SNE处理高维数据可视化 2017-12-21
5 技术:用R语言进行文件系统管理 2017-12-21
6 技术:fct_lump分箱使用方法 2017-12-22
7 技术:F1分数为什么可以看不平衡样本的预测能力 2017-12-27
8 技术:Fisher的一个矩阵预算 2017-12-27
9 技术:case_when使用方法 2017-12-28
10 技术:Python接口函数 2017-12-28
11 技术:fct_relevel调整对照组,批量的方案 2017-12-30
12 技术:python中变量批量处理集成方案 2017-12-30
13 技术:Python接口函数-中台 2018-01-03
14 技术:使用pbd包进行debug 2018-01-03
15 技术:R实现随机分组 2018-01-04
16 技术:jiebaR包做文本清洗 2018-01-05
17 技术:r_WACC使用说明 2018-01-05
18 技术:使用switchhost安装host 2018-01-05
19 技术:Git的下载问题 2018-01-06
20 技术:新闻爬虫 2018-01-07
21 技术:Scalable Data Processing in R 2018-01-08
22 技术:使用git创建一个自己的本地仓库 2018-01-11
23 技术:dashboard构建,来自yihui的包 2018-01-12
24 技术:最大似然估计再理解 2018-01-12
25 技术:itchat包提取微信好友公开数据 2018-01-13
26 技术:do函数和biglm包 2018-01-17
27 技术:Imputer后X少了一列 2018-01-18
28 技术:mac连接mysql,理论上win7也可以 2018-01-19
29 技术:ggpubr提高作图效率 2018-01-20
30 技术:t-SNE理论部分补充 2018-01-22
31 技术:RMarkdown的使用技巧 2018-01-30
32 技术:通过anova检验,理解R2、R_adj.2、F值 2018-01-31
33 技术:ggridges 山峦图 学习笔记 2018-02-02
34 技术:Tidyverse使用技巧 2018-02-02
35 技术:XGBoost 学习笔记 2018-02-02
36 技术:分布变离散,或者纠正skew 2018-02-02
37 技术:rsq在R中自定义函数 2018-02-03
38 技术:Jupyter实战 2018-02-13
39 技术:美化与定制 2018-02-21
40 技术:数据对比可视化指南 2018-02-22
41 技术:功能体验 2018-02-26
42 技术:模型优化技巧 2018-03-05
43 技术:原理与应用 2018-03-06
44 技术:模型与可视化 2018-03-08
45 技术:美化与交互指南 2018-03-11
46 技术:高效操作指南 2018-03-14
47 技术:用法与优化技巧 2018-03-17
48 技术:效率提升指南 2018-03-18
49 技术:问题排查技巧 2018-03-18
50 技术:高效操作指南 2018-03-19
51 技术:方法与代码示例 2018-03-21
52 技术:进阶技巧与优化 2018-03-21
53 技术:实战示例 2018-03-22
54 技术:效率与规范指南 2018-03-24
55 技术:dplython包测评 2018-03-25
56 技术:原理与实现 2018-04-02
57 技术:原理与应用解析 2018-04-03
58 技术:实战指南 2018-04-05
59 技术:核心语法与函数整理 2018-04-05
60 技术:复利计算与应用 2018-04-08
61 技术:简单规则模型解析 2018-04-14
62 技术:高效代码设计指南 2018-04-25
63 技术:原理与应用学习笔记 2018-04-29
64 技术:实战指南 2018-04-29
65 技术:原理与应用 2018-05-01
66 技术:表格格式化指南 2018-05-02
67 技术:原理与应用介绍 2018-05-08
68 技术:高效文本拼接 2018-05-11
69 技术:方法与实践学习笔记 2018-05-12
70 技术:方法与工具 2018-05-12
71 技术:功能解析 2018-05-17
72 技术:高效数据输入 2018-05-21
73 技术:基础模型与方法 2018-05-22
74 技术:功能与使用体验 2018-05-26
75 技术:特征筛选学习笔记 2018-05-29
76 技术:实战技巧 2018-05-30
77 技术:建模思路解析 2018-06-03
78 技术:策略与实战 2018-06-03
79 技术:数据展示指南 2018-06-04
80 技术:包与环境配置指南 2018-07-14
81 技术:高效操作指南 2018-07-19
82 技术:方法与案例解析 2018-07-24
83 技术:统计建模学习笔记 2018-07-24
84 技术:展示技巧与原则 2018-08-10
85 技术:数据采集实战技巧 2018-08-21
86 技术:指标设计学习笔记 2018-09-20
87 技术:建模流程实战 2018-10-01
88 技术:大规模数据探索 2018-10-20
89 技术:文本提取与分析 2018-10-20
90 技术:原理与R实现实战 2018-10-21
91 技术:学习资源获取技巧 2018-10-23
92 技术:深度学习模型实战 2018-10-24
93 技术:实战指南 2018-10-30
94 技术:分析与展示指南 2018-11-03
95 技术:图片编辑与转换 2018-11-03
96 技术:安装与使用基础学习笔记 2018-11-07
97 技术:非结构化数据处理 2018-11-29
98 技术:表格美化技巧 2018-12-13
99 技术:分类数据可视化 2018-12-24
100 技术:流程图绘制技巧 2018-12-24
101 技术:自动化设置 2018-12-28
102 技术:协作与版本控制 2018-12-29
103 技术:pipeline设计 2018-12-30
104 技术:Git历史记录清理 2018-12-31
105 技术:AUC指标对比 2019-01-01
106 技术:时间序列可视化 2019-01-01
107 技术:变量命名工具指南 2019-01-02
108 技术:网页自动化截图 2019-01-02
109 技术:配置与优化 2019-01-03
110 技术:原理与应用 2019-01-07
111 技术:语法与核心概念 2019-01-14
112 技术:R包徽章设计 2019-01-15
113 技术:项目结构设计 2019-01-21
114 技术:文本分类基础任务 2019-01-22
115 技术:线性与非线性模型 2019-01-22
116 技术:有效性验证 2019-01-27
117 技术:评估与应用 2019-01-29
118 技术:循环神经网络入门 2019-01-30
119 技术:长短期记忆网络入门 2019-01-30
120 技术:for循环示例 2019-02-03
121 技术:基础到进阶 2019-02-06
122 技术:查询与整合 2019-02-06
123 技术:方法与案例 2019-02-14
124 技术:R包高效开发指南 2019-02-20
125 技术:解析与操作 2019-02-20
126 技术:训练与预测 2019-02-25
127 技术:原理与代码 2019-02-26
128 技术:GitHub个人访问令牌(PAT)设置 2019-03-04
129 技术:方法与工具 2019-03-07
130 技术:文本特征提取示例 2019-03-08
131 技术:基础任务示例 2019-03-18
132 技术:条形图与表头设计 2019-03-20
133 技术:连续与分类变量差异 2019-03-30
134 技术:思路与方法 2019-04-08
135 技术:方法与工具 2019-04-15
136 技术:多格式读取 2019-04-16
137 技术:方法与工具 2019-05-11
138 技术:Git/GitHub/GitLab 2019-05-13
139 技术:命令与操作 2019-05-19
140 技术:协作与版本控制 2019-05-26
141 技术:语法与实践 2019-06-28
142 技术:功能与API 2019-07-13
143 技术:安装与使用 2019-07-24
144 读《未来简史》:技术与未来 2019-09-14
145 技术:高效数据处理 2019-10-09
146 技术:性能优化技巧 2019-10-12
147 技术:配置与运维 2019-10-29
148 技术:原理与经典模型 2019-12-25
149 技术:构建到发布流程 2019-12-26
150 技术:方法与案例 2019-12-27
151 技术:命令与自动化 2019-12-30
152 技术:Pandas数据处理实战指南 2020-01-19
153 技术:特征工程之目标编码学习笔记 2020-01-20
154 技术:文档编写与美化 2020-01-28
155 技术:核心算法与应用 2020-01-29
156 技术:流程图绘制技巧 2020-01-29
157 技术:DataCamp课程笔记 2020-01-31
158 技术:Python实用代码片段合集 2020-01-31
159 技术:自动化构建流程 2020-02-02
160 技术:自动化工作流配置 2020-02-04
161 技术:高效查找代码与项目 2020-02-11
162 技术:代码环境快速部署 2020-02-24
163 技术:USD数据分析论文收录暨GitBook发布 2020-05-02
164 游记:西安博物院(5)西汉器物工艺到新莽技术应用 2020-10-01
165 技术:Causal Forest 2021-03-18
166 技术小团队人才培养思考:压力・复盘・沉淀 2024-05-21
167 BJ Fogg模型:从说服技术理论到行为设计实践 2024-11-24
168 管理视角:技术团队的核心交付是什么 2025-02-13
169 研读毛选:核心技术三大特征 2025-03-28