gpt4 book ai didi

r - 如何在 RMarkdown 中隐藏代码,并可选择查看

转载 作者:行者123 更新时间:2023-12-03 10:21:20 25 4
gpt4 key购买 nike

我正在写一个 RMarkdown document我想在其中重新运行一些 block (5到9)。
没有必要再次显示这些 block ,所以我考虑使用

```{r echo=FALSE}

使重新运行的 block 不可见,如另一个 stackoverflow question 中所述.这很好,并输出了所需的结果(改进了第二次迭代的拟合 - 请参阅此解决方案实现 here )。

然而,在理想的世界中,代码将是可扩展的,因此如果用户出于教育目的和清晰性(例如,请参阅指向 Greasemonkey 解决方案 here 的链接),则可以准确地看到正在发生的事情,而不是像我的第二个 rpubs 示例中那样隐藏.解决方案可能看起来像这样,但周围的盒子较短,以避免分心:
for (i in 1:nrow(all.msim)){ # Loop creating aggregate values (to be repeated later)
USd.agg[i,] <- colSums(USd.cat * weights0[,i])
}

for (j in 1:nrow(all.msim)){
weights1[which(USd$age <= 30),j] <- all.msim[j,1] /USd.agg[j,1]
weights1[which(USd$age >= 31 & USd$age <= 50),j] <- all.msim[j,2] /USd.agg[j,2]
weights1[which(USd$age >= 51),j] <- all.msim[j,3] /USd.agg[j,3] ##
}
# Aggregate the results for each zone
for (i in 1:nrow(all.msim)){
USd.agg1[i,] <- colSums(USd.cat * weights0[,i] * weights1[,i])
}
# Test results
for (j in 1:nrow(all.msim)){
weights2[which(USd$sex == "m"),j] <- all.msim[j,4] /USd.agg1[j,4]
weights2[which(USd$sex == "f"),j] <- all.msim[j,5] /USd.agg1[j,5]
}

for (i in 1:nrow(all.msim)){
USd.agg2[i,] <- colSums(USd.cat * weights0[,i] * weights1[,i] * weights2[,i])
}

for (j in 1:nrow(all.msim)){
weights3[which(USd$mode == "bicycle"),j] <- all.msim[j,6] /USd.agg2[j,6]
weights3[which(USd$mode == "bus"),j] <- all.msim[j,7] /USd.agg2[j,7]
weights3[which(USd$mode == "car.d"),j] <- all.msim[j,8] /USd.agg2[j,8]
weights3[which(USd$mode == "car.p"),j] <- all.msim[j,9] /USd.agg2[j,9]
weights3[which(USd$mode == "walk"),j] <- all.msim[j,10] /USd.agg2[j,10]
}
weights4 <- weights0 * weights1 * weights2 * weights3
for (i in 1:nrow(all.msim)){
USd.agg3[i,] <- colSums(USd.cat * weights4[,i])
}
# Test results
plot(as.vector(as.matrix(all.msim)), as.vector(as.matrix(USd.agg3)),
xlab = "Constraints", ylab = "Model output")
abline(a=0, b=1)
cor(as.vector(as.matrix(all.msim)), as.vector(as.matrix(USd.agg3)))
#rowSums(USd.agg3[,1:3]) # The total population modelled for each zone, constraint 1
#rowSums(USd.agg3[,4:5])
#rowSums(USd.agg3[,6:10])

我对 echo=F 很满意解决方案,但使用可扩展的代码片段会更快乐。

编辑:除了第一个之外的所有 RPubs 示例现在都已被删除,以避免使用基本相同的文档堵塞他们出色的发布系统。

最佳答案

rmarkdown 使这变得更容易了。包,三年前还不存在。基本上你只需打开“代码折叠”:https://bookdown.org/yihui/rmarkdown/html-document.html#code-folding .您不再需要编写任何 JavaScript。
例如。

---
title: "Habits"
output:
html_document:
code_folding: hide
---
另见 https://bookdown.org/yihui/rmarkdown-cookbook/fold-show.html以更好地控制要折叠或展开的代码块。

关于r - 如何在 RMarkdown 中隐藏代码,并可选择查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14127321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com