我有一个如下所示的数据集,其中包含 1 和 0 列。我想添加最后一列,用于标识每行最后出现 0 的列名。
have = data.frame(a = c(1,0,1,1,0,0,1,1,1,0),
b = c(1,0,1,1,1,0,1,1,0,0),
c = c(0,0,0,1,0,1,1,1,1,0),
d = c(1,0,1,1,0,0,0,1,0,1),
e = c(1,1,1,1,1,1,1,1,1,1))
> have
a b c d e
1 1 1 0 1 1
2 0 0 0 0 1
3 1 1 0 1 1
4 1 1 1 1 1
5 0 1 0 0 1
6 0 0 1 0 1
7 1 1 1 0 1
8 1 1 1 1 1
9 …Run Code Online (Sandbox Code Playgroud) 我必须定期运行两个科目(数学和阅读)的降价报告。目前,我必须在 Markdown 标题、输出文件名(.html 文件)中以及在 R 代码块中设置主题变量以进行数据处理。我想设置一次这个变量并调整标题、输出文件和分析。有没有办法做到这一点?
我知道标题可以通过paramsYAML 标头动态化,但这对输出文件名或 R 代码块内没有帮助。
请参阅下面我当前代码的一部分。请注意,读取变量被指定了 3 次(标题、输出文件名以及“预设”下的 R 代码块内。我想指定一次“读取”(最好在脚本顶部)。
---
title: Reading Investigation"
author: "xxx"
date: "`r format(Sys.time(), '%B %d, %Y')`"
output:
html_document:
code_folding: hide
depth: 3
fig_height: 10
fig_width: 12
highlight: tango
number_sections: no
theme: cerulean
toc: yes
toc_float: yes
knit: (function(inputFile, encoding)
{ rmarkdown::render(inputFile, encoding = encoding,
output_file = paste0('folder/reading_output_', Sys.Date(), '.html') )})
---
```{r, message=FALSE, echo=FALSE, warning=FALSE, results='hide', comment="", fig.height=10, fig.width=12}
# Libraries ------------------------------------------------------------------
library(RODBC)
library(tidyverse)
library(ggplot2)
library(kableExtra)
# …Run Code Online (Sandbox Code Playgroud) 我编写了一个运行线性模型并输出数据帧的函数。我想多次运行该函数并堆叠输出。这是一个假设的数据集和函数:
data = data.frame(grade_level = rep(1:4, each = 3),
x = rnorm(12, mean = 21, sd = 7.5),
y = rnorm(12, mean = 20, sd = 7))
func = function(grade){
model = lm(y ~ x, data=data[data$grade_level == grade,])
fitted.values = model$fitted.values
final = data.frame(grade_level = data$grade_level[data$grade_level == grade],
predicted_values = fitted.values)
final
}
Run Code Online (Sandbox Code Playgroud)
目前,我在数据集中的每个年级运行该函数:
grade1 = func(1)
grade2 = func(2)
grade3 = func(3)
grade4 = func(4)
pred.values = rbind(grade1, grade2, grade3, grade4)
Run Code Online (Sandbox Code Playgroud)
如何使用循环(或其他东西)更有效地多次运行此函数?