我正在尝试在R中制作森林图,显示荟萃分析的结果.但是,我使用ggplot2遇到了问题.到目前为止,我还没有在stackoverflow上找到类似的问题,真的很感激一些帮助.
我现在使用的代码看起来像这样(我改变它以使其自包含):
cohort <- letters[1:15]
population <- c( runif(15, min=2000, max=50000)) #hit1$N
beta <- c( runif(15, min=-1, max=2))
lower95 <- c(runif(15, min=-1.5, max=0.5))
upper95 <- c(runif(15, min=1.5, max=2.5))
type <- c("CBCL","SDQ","CBCL","SDQ","CBCL","SDQ","CBCL")
data <- as.data.frame(cbind(cohort, population, beta ,lower95,upper95,type))
ggplot(data=data, aes(x=cohort, y=beta))+
geom_errorbar(aes(ymin=lower95, ymax=upper95), width=.667) +
geom_point(aes(size=population, fill=type), colour="black",shape=21)+
geom_hline(yintercept=0, linetype="dashed")+
scale_x_discrete(name="Cohort")+
coord_flip()+
scale_shape(solid=FALSE)+
scale_fill_manual(values=c( "CBCL"="white", "SDQ"="black"))+
labs(title="Forest Plot") +
theme_bw()
Run Code Online (Sandbox Code Playgroud)
如果你运行它,它应该看起来像这样:
Rplot http://klaasjanouwens.nl/Rplot.png
现在,我有以下问题:
提前致谢!
我试图替换大空格分隔的文本文件中的值,但无法找到适合此特定问题的答案:
假设我有一个文件"OLD_FILE",包含一个标题和大约200万行:
COL1 COL2 COL3 COL4 COL5
rs10 7 92221824 C A
rs1000000 12 125456933 G A
rs10000010 4 21227772 T C
rs10000012 4 1347325 G C
rs10000013 4 36901464 C A
rs10000017 4 84997149 T C
rs1000002 3 185118462 T C
rs10000023 4 95952929 T G
...
Run Code Online (Sandbox Code Playgroud)
我想使用大(2.8M行)转换表将每行的第一个值替换为相应的值.在此转换表中,第一列列出了我想要替换的值,第二列列出了相应的新值:
COL1_b36 COL2_b37
rs10 7_92383888
rs1000000 12_126890980
rs10000010 4_21618674
rs10000012 4_1357325
rs10000013 4_37225069
rs10000017 4_84778125
rs1000002 3_183635768
rs10000023 4_95733906
...
Run Code Online (Sandbox Code Playgroud)
所需的输出将是一个文件,其中第一列中的所有值都已根据转换表进行了更改:
COL1 COL2 COL3 COL4 COL5
7_92383888 7 92221824 C A
12_126890980 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用闪亮元素制作交互式 Rmarkdocument,并将此文件上传到运行 Shiny Server 的服务器。为了让它工作,我需要来自(本地)Rstudio 的输出,我可以上传(我想我需要 .md 和 .html 文件)。
为了说明,这里是一个示例脚本:
---
title: "Untitled"
output: html_document
runtime: shiny
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r, echo=FALSE}
inputPanel(
selectInput("n_breaks", label = "Number of bins:",
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = "Bandwidth adjustment:",
min = 0.2, max = 2, value = 1, step = 0.2)
)
renderPlot({
hist(faithful$eruptions, probability = TRUE,
breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)", main = "Geyser eruption duration")
dens …Run Code Online (Sandbox Code Playgroud)