相关疑难解决方法(0)

循环在R降价

我有一个像这样的R降价文件:

The following graph shows a histogram of variable x:

```{r}
hist(x)
```
Run Code Online (Sandbox Code Playgroud)

我想介绍一个循环,所以我可以为多个变量做同样的事情.假设有这样的东西:

for i in length(somelist) {
  output paste("The following graph shows a histogram of somelist[[" , i, "]]")
  ```{r}
  hist(somelist[[i]])
  ```
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?

PS:更大的计划是创建一个程序,该程序将遍历数据框并自动为每列生成适当的摘要(例如直方图,表格,箱形图等).然后,该程序可用于自动生成降价文档,其中包含在查看第一个数据的数据时要进行的探索性分析.

markdown r r-markdown

41
推荐指数
2
解决办法
2万
查看次数

如何在R中创建一个包含代码块和带有knitr的文本的循环

我试图弄清楚如何创建一个循环,将一些文本插入到rmarkdown文件中,然后生成与该标题对应的图形或表格.以下是我的工作原理:

for(i in 1:max(month)){
### `r month.name[i]` Air quaility

```{r, echo=FALSE}
plot(airquality[airquality$Month == 5,])
```
}
Run Code Online (Sandbox Code Playgroud)

这个当然只是打印for循环作为文本,如果我用r``环绕for循环,我只会得到一个错误.

我希望代码生成一个如下所示的rmd文件:

可空气质量

情节

六月空气质量

情节

等等等等.有任何想法吗?我不能使用乳胶因为我在工作时他们不让我们下载exe文件,而且我不知道如何使用乳胶.我想制作一个word文档.

loops r knitr

22
推荐指数
2
解决办法
8872
查看次数

R Markdown,循环输出测试结果

我正在寻找格式良好的测试结果的降价输出,该输出在for循环内生成并由标题构成。例如

df <- data.frame(x = rnorm(1000),
           y = rnorm(1000),
           z = rnorm(1000))

for (v in c("y","z")) {
  cat("##", v, " (model 0)\n")
  summary(lm(x~1, df))

  cat("##", v, " (model 1)\n")
  summary(lm(as.formula(paste0("x~1+",v)), df))
}
Run Code Online (Sandbox Code Playgroud)

而输出应该是

y(模型0)

Call:
lm(formula = x ~ 1, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.8663 -0.6969 -0.0465  0.6998  3.1648 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.05267    0.03293    -1.6     0.11

Residual standard error: 1.041 on 999 degrees of freedom
Run Code Online (Sandbox Code Playgroud)

y(模型1)

Call:
lm(formula = as.formula(paste0("x~1+", …
Run Code Online (Sandbox Code Playgroud)

r r-markdown

3
推荐指数
1
解决办法
174
查看次数

防止/停止包裹在r markdown中

这里新的降价...可能遗漏了一些简单的......我正在尝试使用for循环中生成的图创建一个markdown文档,但是想要阻止包裹图= =即保留一列.

这与此处显示的类似:Knitr如何防止输出中的文本换行.我不能让这个用于绘图.

理想情况下,每个之间可能存在换行符.我发现了这一点,但我对pandoc并不熟悉,而且它正在为我想要保持简单的内容添加另一层.如果这是最好的解决方案,我会打赌这条路线,但我敢打赌,有一些更简单的东西.将情节放在桌子上?还没想出来......

示例代码(自第一篇文章以来编辑):

```{r}
value <- rnorm(100)
index <- c(rep(1,20),rep(2,20),rep(3,20),rep(4,20),rep(5,20))
group1 <- 1:5
group2 <- 1:2
df <- as.data.frame(cbind(value,index,group1,group2))

for (i in unique(df$group1)){
par(mfrow=c(1,2))
plot(value~index,data=subset(df,group1==i & group2==1),type="l",pch=16,main=unique(paste("plot",i,"group=",group1)))
plot(value~index,data=subset(df,group1==i & group2==2),type="l",pch=16,main=unique(paste("plot",i,"group=",group2)))
box("outer")
}
```
Run Code Online (Sandbox Code Playgroud)

markdown r pandoc knitr

1
推荐指数
1
解决办法
1425
查看次数

标签 统计

r ×4

knitr ×2

markdown ×2

r-markdown ×2

loops ×1

pandoc ×1