CRAN上 的包都是干什么的?

CRAN上 的包都是干什么的?

在之前的推文 R 和 RStudio 的安装 的结尾,我写了段爬取 CRAN 上的所有 R 包的名称、发布日期和标题的代码,但是我只使用了前两个变量,进行绘图,没有提标题的事情,那么标题可以用来干什么呢?标题当然是描述该包的主要功能了,通过简单的词频统计,我们就能绘制一幅词云图观察 CRAN 上的 R 包的关键词是哪些了,首先还是爬取清华镜像源的那个表格:

R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
library(rvest)
library(tidyverse)
# lubridate 是处理日期的一个 R 包
library(lubridate)
library(hrbrthemes)

# 需要耐心地等待一会儿
pkg <- "https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages/available_packages_by_date.html" %>%
read_html() %>%
html_table() %>%
.[[1]] %>%
as_tibble() %>%
mutate(
Date = ymd(Date),
Year = year(Date),
Month = month(Date)
)

分词和去除没有意义的一些词,例如介词、代词等(称为停用词):

R
1
2
3
4
5
6
7
8
9
library(tidytext)
stopwords <- get_stopwords(language = "en")
worddf <- pkg %>%
unnest_tokens(Title, Title,
token = stringr::str_split,
pattern = " ") %>%
count(Title) %>%
arrange(desc(n)) %>%
dplyr::filter(!Title %in% stop_words$word)

下面使用我写的 hwordcloud 包绘制一幅词云图(只绘制前100个单词):

R
1
2
3
4
library(hwordcloud)
df <- worddf %>% head(100)
hwordcloud(text = df$Title, size = df$n,
width = "100%", height = "400px")

几个关键词是数据分析、建模、回归、接口、贝叶斯。

hwordcloud() 函数还有很多参数,例如主题选择:

R
1
2
3
4
5
hwordcloud(text = df$Title, size = df$n,
width = "100%", height = "400px",
theme = "sunset",
title = "R Packages on CRAN",
subtitle = "TidyFriday Project @ czxa.top")

其他的参数选择可以参考包的帮助文档,也可以参考我为这个包制作的一个 Shiny
应用:

R
1
2
3
dir <- system.file("examples", "hwordcloud", package = "hwordcloud")
setwd(dir)
shiny::shinyAppDir(".")

在线访问:https://czxa.top/shiny/packages/
翻到 hwordcloud 页面即可探索。

我还在另外一个 Shiny 应用里面用到了这个 R
包:https://czxa.top/shiny/stock/
一个财经新闻分析工具。

其它绘制词云图的 R 包

绘制词云图的 R 包蛮多的,我就不一一介绍了:

我觉得我的 R 包绘制的词云图最好看,不接受反驳!

知识星球链接:https://t.zsxq.com/E2Jai6M

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×