R海拾遗-流程图prismadiagramR
R绘制流程图
sunqi
2020/7/23
R 概述
这个包是为了快速建立meta分析的流程图,目标是符合prism发表的要求
需要的参数:
- Pub.ID: 文章id
- Source: 文章来源,如pubmed等标记
- Filter: 排除文章的原因,或者不排除
go
安装
# install.packages("prismadiagramR")
library(prismadiagramR)
library(dplyr)
进行一个简单的例子
rm(list=ls())
set.seed(25)
N <- 100
studyStatus <- data.frame(Pub.ID = seq(1:N),
# sample为随机取样
Source = sample(letters[1:3], N, replace = TRUE),
Filter = sample(letters[1:5], N, replace = TRUE))
# 建立的数据集,包含100个例子
head(studyStatus)
## Pub.ID Source Filter
## 1 1 c a
## 2 2 a d
## 3 3 a e
## 4 4 a d
## 5 5 a e
## 6 6 b a
#把e替换为NA,也就是不排除的文章
studyStatus$Filter[studyStatus$Filter=="e"] <- NA
#绘制流程图
getPrisma(studyStatus) %>% DiagrammeR::grViz(.)
Source: a(N=38)Studies Remaining:(N=76)Source: b(N=32)Source: c(N=30)Filter: a(N=24)Filter: b(N=14)Filter: c(N=27)Filter: d(N=17)Studies Remaining:(N=62)Studies Remaining:(N=35)Studies Remaining:(N=18)Studies in Analysis(N=18)
# 对排除的顺序和文章来源进行调整
studyStatus$Source <- ordered(studyStatus$Source , levels = c("c", "b", "a"))
studyStatus$Filter <- ordered(studyStatus$Filter , levels = c("d", "c", "b", "a"))
getPrisma(studyStatus) %>% DiagrammeR::grViz(.)
Source: c(N=30)Studies Remaining:(N=83)Source: b(N=32)Source: a(N=38)Filter: d(N=17)Filter: c(N=27)Filter: b(N=14)Filter: a(N=24)Studies Remaining:(N=56)Studies Remaining:(N=42)Studies Remaining:(N=18)Studies in Analysis(N=18)
自定义输出
查看需要的格式
prismaFormat <- getPrismaFormat(studyStatus)
# install.packages("flextable")
# 可以看到prisma需要的参数有3个,一个是node的水平,一个是node的类型,一个是文本
flextable::flextable(prismaFormat)
prismaLvl |
nodeType |
prismaTxt |
---|---|---|
1 |
Source |
Source: c(N=30) |
1 |
Source |
Source: b(N=32) |
1 |
Source |
Source: a(N=38) |
2 |
Filter |
Filter: d(N=17) |
3 |
Filter |
Filter: c(N=27) |
4 |
Filter |
Filter: b(N=14) |
5 |
Filter |
Filter: a(N=24) |
2 |
Node |
Studies Remaining:(N=83) |
3 |
Node |
Studies Remaining:(N=56) |
4 |
Node |
Studies Remaining:(N=42) |
5 |
Node |
Studies Remaining:(N=18) |
6 |
End |
Studies in Analysis(N=18) |
# 更改文本
prismaFormat$prismaTxt[1] <- "huoxingwa"
getPrisma(studyStatus = NULL, prismaFormat = prismaFormat) %>% DiagrammeR::grViz(.)
huoxingwaStudies Remaining:(N=83)Source: b(N=32)Source: a(N=38)Filter: d(N=17)Filter: c(N=27)Filter: b(N=14)Filter: a(N=24)Studies Remaining:(N=56)Studies Remaining:(N=42)Studies Remaining:(N=18)Studies in Analysis(N=18)
# 更改字体大小
prismaFormat$fontSize <- 15
prismaFormat$fontSize[1] <- 10
getPrisma(studyStatus = NULL, prismaFormat = prismaFormat) %>% DiagrammeR::grViz(.)
huoxingwaStudies Remaining:(N=83)Source: b(N=32)Source: a(N=38)Filter: d(N=17)Filter: c(N=27)Filter: b(N=14)Filter: a(N=24)Studies Remaining:(N=56)Studies Remaining:(N=42)Studies Remaining:(N=18)Studies in Analysis(N=18)
## prismaFormat是比较重要的一个输入结构,因此,也可以直接从prisma这里输入数据,不用第一种方式也是可以的
prismaFormat <-
data.frame(
prismaLvl = c(1,1,1,2,2,3),
nodeType = c("Source", "Source","Source", "Node", "Filter", "End"),
prismaTxt = letters[1:6]
)
getPrisma(studyStatus = NULL, prismaFormat = prismaFormat) %>% DiagrammeR::grViz(.)
adbcef
结束语
从效率角度上来说,可以避免绘制流程图的框框,但是从代码角度来讲,还是费劲的,不过,可重复性强,改改就可以出新的流程图,嫌输入麻烦,可以在excel中输入好节点,直接绘制,还是不错的。电脑也坏了,不禁造啊,头疼了两天,我又回来了。 love&peace
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Docker 入门到实战教程(一)介绍Docker
- Docker 入门到实战教程(二)安装Docker
- Docker 入门到实战教程(三)镜像和容器
- Docker 入门到实战教程(四)容器链接
- Docker 入门到实战教程(五)构建Docker镜像
- Docker 入门到实战教程(六)Docker数据卷
- Docker 入门到实战教程(七)安装Redis
- Docker 入门到实战教程(八)安装Mysql
- Docker 入门到实战教程(九)安装Nginx
- Docker教程(九)部署Spring Boot项目
- Docker 入门到实战教程(十一)部署Vue+SpringBoot 前后端分离项目
- Docker 入门到实战教程(十二)ELK+Filebeat搭建日志分析系统
- Docker 入门到实战教程(十三)Docker Compose
- 解决IDEA2020.1版本的lombok插件问题
- 工具系列 | 视频监控RTSP转HLS解决方案