整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

R数据分析:相对小众但是超好用的R包汇总

R数据分析:相对小众但是超好用的R包汇总

为一个资深调包侠,收集各式各样功能的R包是我的爱好之一,R语言现在是我工作中最主要的工具,无论是科研中的数据读取还是下游的数据报告,我都会使用R的各种包来完成。下面从数据分析的整个工作流程(数据导入与获取-数据处理-数据分析-数据报告-其他奇技淫巧)介绍一些相对小众但是超好用的R包。


1.数据导入与获取

1.1 readr

一般数据读取 readr, read_xx系列(这个包其实不小众)

相对于R 基础包的http://read.xxx而言,read_xxx系列主要有两个改动: 1. 字符没有默认为因素变量, 2. 读取数据时会显示数据的类型,如下图。

出处:https://readr.tidyverse.org/


1.2 vroom

大体量数据读取vroom 包。可以媲美data.table包中的fread函数的读取速度,快速读取GB体量的数据。主要用法见下图:

出处:https://www.tidyverse.org/blog/2019/05/vroom-1-0-0/

R中各种函数读取文件速度的测评见:

https://cran.r-project.org/web/packages/vroom/vignettes/benchmarks.htmlcran.r-project.org


1.3 datapasta

复制黏贴大师,datapasta包,它可以直接从excel,网页等数据源中将数据直接复制到R中,甚至可以一定程度上代替简单爬虫。

datapasta 示例:摘自:https://github.com/MilesMcBain/datapasta


2.数据处理和汇总

2.1 Rmisc

数据处理和汇总这部分现在基本被dplyr+ tidyr data.table 垄断。 但是我偶尔也会用到别的包,比方说Rmisc 这个包做数据汇总。原因是这个包中的summarySEwithin 函数可以用来处理被试内变量画error bar图。

比如上图这种情况,重复测量的error bar 和被试间设计的error bar一个样, 所以需要校正 图片引自:Andy Field Discovering Statistics Using R Chapter 9

2.2 naniar

此外,在缺失值处理上,如果需要快速找出缺失值,或者简单查看缺失值占比和分布,可以使用 naniar 包。比如可以通过下面的代码快速发现缺失值的分布:

library(naniar)

ggplot(data=airquality,
       aes(x=Ozone,
           y=Solar.R)) +
  geom_miss_point()

naniar 用法 摘自:https://github.com/njtierney/naniar


3.数据分析相关

3.1 skimr

skimr 包,快速给出数据的描述性统计结果并附带频数分布图,用法见下图:

出处:https://github.com/ropensci/skimr

3.2 compareGroups

compareGroups 包,快速做描述性统计表格(比如下图这种,附带频数的卡方检验),支持输出docx格式。

出处:https://cran.r-project.org/web/packages/compareGroups/vignettes/compareGroups_vignette.html

3.3 effectsize

effectsize 包, 万能效应量转换器, 我一般用到的是图下的函数,比如通过F值和自由度求效应量等等。

出处:https://easystats.github.io/effectsize/reference/index.html


4.数据报告相关


4.1 esquisse

esquisse 包,免代码ggplot 生成器,鼠标点点点就能在R-studio里面画图。

出处:https://github.com/dreamRs/esquisse

4.2 ggThemeAssit

ggThemeAssit包,调节ggplot对象的神器, 免代码调节ggplot的细节参数,比如字体,背景颜色等等。

出处:https://github.com/calligross/ggthemeassist

4.3 apaTables

直接一键输出apa格式表格到word文档。

输出apa格式的表格到doc文件,出处:https://github.com/dgromer/apa

4.4 papaja

这个包可以借助Rmarkdown写APA格式的可发表的论文,不过我平时主要是用它里面的theme_apa() ggplot的主题。

出处:https://github.com/crsh/papaja


4.5 xaringan

xaringan包, 使用Rmarkdown写类似PPT一样的幻灯片进行数据分析报告。大神谢益辉写的包,支持中文!

出处:https://github.com/yihui/xaringan


4.6 patchwork

patchwork包,让你能够非常轻松的在一张画布上布局多张ggplot的图片,如下图:

出处:https://patchwork.data-imaginist.com/


5.其他奇技淫巧

5.1 BERT (这其实是个excel插件)

在Excel 里面用R 语言进行数据处理

详情见:https://bert-toolkit.com/

5.2 waldo

比较R 中的对象并给出前后差异,神器!

出处:https://github.com/r-lib/waldo

5.3 livecode

局域网网页直播写代码,上课或者工作坊必备!

出处:https://github.com/rundel/livecode

5.4 ProjectTemplate

建立结构化的数据分析项目,给每个数据分析单独建一个项目,促进数据分析的可再生性。

出处:http://projecttemplate.net/getting_started.html

5.5 emo

在R里面输入各种表情包:

出处:https://github.com/hadley/emo


5.6 taskscheduleR

R语言定时任务必备。比如爬虫任务,每隔一段时间抓取某网页信息,想当年我就是用这个包抢到了租房网站的房子。。。

出处:https://cran.r-project.org/web/packages/taskscheduleR/vignettes/taskscheduleR.html


5.7 DataEditR

像Excel一样无代码操作R-studio里面导入的数据:

出处:https://cran.r-project.org/web/packages/DataEditR/vignettes/DataEditR.html

5.8 todor

这个包特别在专门针对你代码中的comment 进行归类,使你的代码更加结构化。可以通过R-studio的插件来使用这个包

详情见:https://cran.r-project.org/web/packages/todor/todor.pdf

本文转自愷洋,请支持原创!

文对cgroup已期望说明以下内容:

  1. 什么是cgroups ?
  2. 为什么需要cgroups ?
  3. cgroups是怎么实现的?
  4. 如何使用cgroups ?

1 什么是cgroups ?

cgroups提供了一套管理进程(子进程)资源控制机制。

定义了以下专业术语: cgroup:使用一个或多个subsystems的参数集合来控制一组任务集合。 subsystem:subsystem是内核提供的管理特定资源的资源控制器。 hierarchy:hierarchy是一个逻辑概念,cgroup按照subsystem进行分类, 形成一系列cgroups,并以tree的结构组织,hierarchy这里指的是类似tree 层级。每个hierarchy层级可以映射到操作系统中的虚拟文件系统, 每个subsystem映射到一颗cgroup tree。

用户态程序会使用cgroup虚拟文件系统对应的名字来创建、删除cgroup实例、设置 或查询任务所在的cgroup。这些操作只影响cgroup文件系统中关联的cgroup实例所在的hierarchy。

2 为什么需要cgroups?

Linux内核为了使用了多种技术(cpusets, CKRM/ResGroups, UserBeanCounters, 以及virtual servernamespaces)管理进程。这些技术都需要对进程分组/分区。

内核提供的cgroup提供了一套内核机制。 举例来说:

echo pid > /sys/fs/cgroup/network/<new_class>/tasks

只需要把管理的任务写入,即可达到对某一资源的控制(如network)。

3 cgroup是如何实现的?

cgroups扩展了内核以下内容:

  • 每个任务在系统中指向一个css_set结构体指针.
  • 一个css_set 含有一系列指向 cgroup_subsys_state结构体的指针, 每个cgroup_subsys_state对应一个 cgroup subsystem.
  • cgroup hierarchy 文件可以被挂载浏览、执行用户态操作.
  • 查看cgroup下所有的任务PID.

具体在内核中如何通过css_set管理不在本文讨论范围之内。

在文件夹目录下,可以看到cgroup含有以下文件夹内容:

  • tasks: 一系列的pids. 将进程ID写入这个文件会将其移动到这个cgroup.
  • cgroup.procs: 一系列的进程组IDs.将进程组ID写入这个文件会将其移动到这个cgroup.
  • notify_on_release flag: 是否运行release agent?
  • release_agent: 用于发布通知的路径(此文件仅存在于顶级 cgroup)

cgroups可以使用mkdir系统调用或者shell命令创建,cgroup的属性则可以通过修改相应的 文件内容进行修改。

美团对这个架构图有一个绘制,如图1所示。

4 如何使用cgroups ?

以一个httpd程序pid=51656程序为例,需要限制httpd cpu使用2,3, mem使用1限制,net限制使用cg3中已有的配置内容。

## 限制cpu、mem使用
cd /sys/fs/cgroup/cpu_mem_cg
mkdir cg2
cd cg2
/bin/echo 2-3 > cpuset.cpus
/bin/echo 1 > cpuset.mems
/bin/echo 51565 > tasks
## 限制net使用
cd /sys/fs/cgroup/net/cg3
/bin/echo 51565 > tasks

参考文献

[linux资源管理之cgroups简介] https://tech.meituan.com/2015/03/31/cgroups.html

[Linux kernel cgroups-v1] https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt

要一款简单高效的通讯录分类管理工具?小编今天为大家分享GroupsPro for Mac(通讯录分类整理工具)软件。GroupsPro Mac版可以帮助我们高效方便地分类整理联系人通讯录及联系人邮件地址,提高工作效率!还在等什么?感兴趣的朋友,欢迎前来下载!


功能特色

产生和修改群组联系人

将联系人分配不同的群组(单个的和快速的分配)

为群发短信子邮件产生和修改邮件列表

在所有联系人中搜索姓名、部门、邮政地址、备注 、电话号码和电子邮件地址

邮件列表

可在GroupsPro中使用,以便向多个收件人发送电子邮件。

添加文字和照片

CC和BCC收件人部分支持

附件

PDF作为图像或附件

作为HTML的消息可能

使用Mail应用程序手动发送准备好的电子邮件

观看您的联系人的照片和详细资料

导出到文件(Excel和CSV)及更多