我有一个像这样的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:更大的计划是创建一个程序,该程序将遍历数据框并自动为每列生成适当的摘要(例如直方图,表格,箱形图等).然后,该程序可用于自动生成降价文档,其中包含在查看第一个数据的数据时要进行的探索性分析.
我试图弄清楚如何创建一个循环,将一些文本插入到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文档.
我正在寻找格式良好的测试结果的降价输出,该输出在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)
而输出应该是
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)
Call:
lm(formula = as.formula(paste0("x~1+", …Run Code Online (Sandbox Code Playgroud) 这里新的降价...可能遗漏了一些简单的......我正在尝试使用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)