我有一个rmarkdown演示文稿(ioslides)有3张幻灯片,流程图在DiagrammeR美人鱼中工作.保存为.Rmd的以下文件可以重现该示例(至少在我的机器中,希望您也是如此):
---
title: "Untitled"
author: "author"
date: "28 de enero de 2018"
output: ioslides_presentation
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
require(DiagrammeR)
```
## DiagrammeR's mermaid
It's not producing consistent results in slides when using line breaks.
```{r flow}
mermaid("
graph LR
C(CLIENTES <br>Clients) --> D[Doctors]
U(USUARIOS <br>Users <br>Patients <br>Nurses) --> D
D --> S(SALIDAS <br>Medicines <br>Surgery)
style C fill: #f5f5dc
style D fill: #4682b4
style U fill: #ffe4c4
")
```
## Second attempt
```{r flow2}
mermaid("
graph …Run Code Online (Sandbox Code Playgroud) 我正在用rmarkdown和latex工作.我需要使用打印一组表knitr::kable,但是在for循环中不打印.
这是我的代码:
---
title: "project title"
author: "Mr. Author"
date: "2016-08-30"
output:
pdf_document:
latex_engine: xelatex
bibliography: biblio.bib
header-includes:
- \usepackage{tcolorbox}
---
Text and chunks that run ok.
```{r loadLibraries}
require(data.table)
require(knitr)
```
## Try to print a group of tables from split
```{r results = "asis"}
t1 <- data.table(a = sample(letters, 10, T), b = sample(LETTERS[1:3], 10, T))
t2 <- split(t1, t1$b)
for (i in 1:length(t2)){
kable(t2[[i]], col.names = c("A", "B"))
}
```
Run Code Online (Sandbox Code Playgroud)
如果我使用results = "asis"或者如果我完全省略它没关系,则 …
我一直在研究一些数据,这里有:Dropbox的csv文件(请善用它来复制错误).
当我运行代码时:
t<-read.csv("120.csv")
x<-NULL
for (i in 1:100){
x<-c(x,cor(t$nitrate,t$sulfate,use="na.or.complete"))
}
sum(is.nan(x))
Run Code Online (Sandbox Code Playgroud)
我得到最后一个表达式的随机值,通常在55到60左右.我希望cor得到可重复的结果,所以我希望x是一个由相同值组成的长度= 100的向量.例如,请参阅两个独立运行的输出:
> x<-NULL; for (i in 1:100){x<-c(x,cor(t$nitrate,t$sulfate,use="na.or.complete"))}
> sum(is.nan(x))
[1] 62
> head(x,10)
[1] NaN NaN 0.2967441 NaN 0.2967441 NaN NaN NaN
[9] 0.2967441 NaN
> x<-NULL; for (i in 1:100){x<-c(x,cor(t$nitrate,t$sulfate,use="na.or.complete"))}
> sum(is.nan(x))
[1] 52
> head(x,10)
[1] 0.2967441 NaN NaN NaN NaN 0.2967441 0.2967441 NaN
[9] 0.2967441 0.2967441
>
Run Code Online (Sandbox Code Playgroud)
我想知道我在这里做错了什么,或者它是否是一个[n] [un]已知错误.如果是这样的话,我很感激,如果有人比我更有帮助我帮助我向CRAN报告.
我读了一篇非常古老的(2001)文章,其中cor.test表现出同样的行为(参见cor.test有时会产生NaN).
我很感激你的解释,因为我是R的nOOb谢谢!
Per Ben的建议:
> sessionInfo()
R version …Run Code Online (Sandbox Code Playgroud) 我制作了一个大型数据框(1700 + obs,159个变量),其功能是从网站收集信息.通常,函数会查找某些列的数值,因此它们是数字的.但是,有时它会找到一些文本,并将整个列转换为文本.我有一个df,其列类是正确的,我想将这些类"粘贴"到一个新的,不正确的df.比方说,例如:
dfCorrect<-data.frame(x=c(1,2,3,4),y=as.factor(c("a","b","c","d")),z=c("bar","foo","dat","dot"),stringsAsFactors = F)
str(dfCorrect)
'data.frame': 4 obs. of 3 variables:
$ x: num 1 2 3 4
$ y: Factor w/ 4 levels "a","b","c","d": 1 2 3 4
$ z: chr "bar" "foo" "dat" "dot"
## now I have my "wrong" data frame:
dfWrong<-as.data.frame(sapply(dfCorrect,paste,sep=""))
str(dfWrong)
'data.frame': 4 obs. of 3 variables:
$ x: Factor w/ 4 levels "1","2","3","4": 1 2 3 4
$ y: Factor w/ 4 levels "a","b","c","d": 1 2 3 4
$ z: Factor w/ …Run Code Online (Sandbox Code Playgroud) 有些问题类似于在SO (问题1),(问题2)中已经提出过的问题,但没有一个问题得到答案(最后一个问题由@jdharrison指示OP提出问题).这是我的问题:
我曾经有一个非常简单的脚本从网站获取一些信息到R:
startServer()
rd<-remoteDriver(remoteServerAddr="localhost",port=4444,browserName="firefox")
rd$open()
rd$navigate(url) #with a defined url
Run Code Online (Sandbox Code Playgroud)
当我现在尝试运行脚本时,rd$open()它会打开一个firefox窗口(保持空白约30秒),然后关闭并返回错误:
rd$open()
[1] "Connecting to remote server"
Error: Summary: UnknownError
Detail: An unknown server-side error occurred while processing the command.
class: org.openqa.selenium.firefox.NotConnectedException
Run Code Online (Sandbox Code Playgroud)
阅读SO和其他一些网站上的不同帖子,似乎问题是由firefox和RSelenium版本的不兼容引起的.
在GitHub的selenium论坛上,有一个帖子表明将硒从2.44更新到2.45解决了这个问题.但是,如果RSelenium似乎是最新的,我对如何更新硒一无所知:
sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=Spanish_Colombia.1252
[2] LC_CTYPE=Spanish_Colombia.1252
[3] LC_MONETARY=Spanish_Colombia.1252
[4] LC_NUMERIC=C
[5] LC_TIME=Spanish_Colombia.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] RSelenium_1.3.5 …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过以下代码生成带有格子xyplot的图:
set.seed(123) #### make it reproducible
df<-data.frame(x=runif(100,1,1e7),y=runif(100,0.01,.08),t=as.factor(sample(1:3,100,replace=T)))
png("xyplot_grid_misaligned.png",800,800)
p<-xyplot(y ~ x,groups=t,data=df,scales=list(x=list(log=10,equispaced.log=F)),auto.key=T,ylim=c(-.01,.1),grid=T)
print(p)
dev.off()
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,它产生了一个美丽的情节:

我希望绘图上的网格与生成的刻度线对齐equispaced.log=F.xyplot的文档只讨论grid关于多条曲线,因为这样做在SO和其他网站的一些其他线程(事实上,我得到了grid=T来自另一个站点argumment:R中使用点阵图形,甚至那里你可以看到,当equispaced.log=F使用,网格与标记"错位".
为了防止有人认为这是SO的重复:对齐 - 网格 - 线 - 轴 - 刻度 - 格 - 图形,请注意那里的问题是如何在多个图形中对齐网格(和,当时,线程还没有回答).
在使用时,如何将xyplot"对齐"网格线与x刻度equispaced.log=F?谢谢!
我正在尝试使用回归模型中的相关数据来注释 ggplot 中的图。我遵循了这篇 SO 帖子中的建议,并尝试修改该函数,以便在图中的换行符中添加几个附加项目。这是我对新功能的尝试:
lm_eqn = function(m){
eq <- substitute(italic(y) == a %.% italic(x)^b*","~~italic(r)^2~"="~r2*","~~italic(n)~"="~nn*","~~italic(p-value)~"="~pv,
list(a = format(exp(coef(m)[1]), digits = 3),
b = format(coef(m)[2], digits = 3),
r2 = format(summary(m)$r.squared, digits = 3),
nn=format(summary(m)$df[2]),
pv=format(summary(m)$coefficients[,4][2])))
as.character(as.expression(eq));
}
Run Code Online (Sandbox Code Playgroud)
它产生预期的输出:全部在一行中。但我想将文本分成两行,第二行以italic(n)=. 但是如果我引入 a \n,它在找到时会抛出错误\n。如果我在引号内引入 \n:"\n"那么它似乎会被忽略并且文本保留在一行中。我还没有找到任何关于如何在这样的表达式中引入换行符的参考。我们将非常感谢您的帮助。
谢谢。
编辑:根据@Tim 的评论,我提出了重写的代码和调整的问题。
我正在研究一个Rmarkdown文档,并被告知要严格限制最大列数(边距列)为100.在文档的代码块中,我使用了许多不同的包,其中包括data.table.
为了符合限制,我可以拆分链(甚至长命令),如:
p <- ggplot(foo,aes(bar,foo2))+
geom_line()+
stat_smooth()
bar <- sum(long_variable_name_here,
na.rm=TRUE)
foo <- bar %>%
group_by(var) %>%
summarize(var2=sum(foo2))
Run Code Online (Sandbox Code Playgroud)
但我不能拆分data.table链,因为它会产生错误.我怎样才能实现这样的目标?
bar <- foo[,.(long_name_here=sum(foo2)),by=var]
[order(-long_name_here)]
Run Code Online (Sandbox Code Playgroud)
当然,最后一行会导致错误.谢谢!
我有一个由 3 列组成的组件列表:产品、组件和使用的组件数量:
a <- structure(list(prodName = c("prod1", "prod1", "prod2", "prod3",
"prod3", "int1", "int1", "int2", "int2"), component = c("a",
"int1", "b", "b", "int2", "a", "b", "int1", "d"), qty = c(1L,
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L)), row.names = c(NA, -9L), class = c("data.table",
"data.frame"))
Run Code Online (Sandbox Code Playgroud)
prodName component qty
1 prod1 a 1
2 prod1 int1 2
3 prod2 b 3
4 prod3 b 4
5 prod3 int2 5
6 int1 a 6
7 int1 b 7
8 int2 int1 …Run Code Online (Sandbox Code Playgroud) 我有两个与gridExtra::grid.arrange. 我可以用top参数在它们上面加上一个标题。问题是,我被要求在情节的左上角找到标题。
一个可重现的例子:
library(ggplot2)
library(gridExtra)
p1 <- qplot(1:20)
p2 <- qplot(30, 35)
grid.arrange(p1, p2, nrow = 1, top = "Title")
Run Code Online (Sandbox Code Playgroud)
产生
但我需要的是:
我读了好几次?arrangeGrob文件(我认为这是我的答案),但还没有想出如何实现它。
r ×10
data.table ×2
assign ×1
class ×1
copy ×1
correlation ×1
dataframe ×1
diagrammer ×1
expression ×1
gridextra ×1
grob ×1
ioslides ×1
join ×1
knitr ×1
latex ×1
lattice ×1
logarithm ×1
mermaid ×1
nan ×1
newline ×1
plot ×1
r-grid ×1
r-markdown ×1
recursion ×1
rselenium ×1
self-join ×1
substitution ×1