我必须做一个重复表,每次计算都要取上一个.让我解释一下,我最初的数据是:

maximum <- 10
minimum <- 2
orderp <-0
Qst <- 6
sell <- c(0, 2 , 2 , 10)

计算:

Qst <- c(6, 4, 2, 0)
Qfin <- c(6,4, 10, 10)
orderp <- c(0,0,8,10)
output<-data.frame(Qst,Qfin,sell)
Name 1 2 3 4
Qst 6 6-2=4 (Qfin(1)-sell(2) 4-2=2 (Qfin(2)-sell(3) 10-10=0 (Qfin(3)-sell(4)
orderp 0 0 if(Qst(2) <=min) MAX-Qst(2) 8 if(Qst(3) <=min) MAX-Qst 10 if(Qst(4) <=min) MAX-Qst
Qfin 6 4 (Qst(2)+orderp(2) 10 (Qst(3)+orderp(3) 10 (Qst(4)+orderp(4)
sell 0 2 2 10

我怎么能做这样的事?Excel很简单,但R不是我的专业.

推荐答案

我认为这需要一个小循环来解决,因为这是一个迭代计算:

for(i in 2:length(sell)) {
  Qst[i] <- Qfin[i - 1] - sell[i]
  orderp[i] <- ifelse(Qst[i] <= minimum, maximum - Qst[i], 0)
  Qfin[i] <- Qst[i] + orderp[i]
}

这导致:

rbind(Qst, orderp, Qfin, sell)
#>        [,1] [,2] [,3] [,4]
#> Qst       6    4    2    0
#> orderp    0    0    8   10
#> Qfin      6    4   10   10
#> sell      0    2    2   10

reprex package(v2.0.1)于2022年5月13日创建

R相关问答推荐

将Multilinetring合并到一个线串中,使用sf生成规则间隔的点

在特定列上滞后n行,同时扩展框架的长度

将复杂的组合列表转换为数据框架

大规模重新标记haven标签数据

如何使用`ggplot2::geom_segment()`或`ggspatial::geom_spatial_segment()`来处理不在格林威治中心的sf对象?

如何编辑ggplot的图例字使用自定义对象(gtable)?'

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

将数字转换为分钟和秒

我正在努力用R计算数据集中的中值逐步距离

将重复项转换为NA

在R函数中使用加号

更改STAT_VALLES/STAT_PEAKS中的箭头线宽/大小

将多个变量组合成宽格式

Conditional documentr::R中数据帧的summarize()

在使用SliderInput In Shiny(R)设置输入数据的子集时,保留一些情节痕迹

如何在内联代码中添加额外的空格(R Markdown)

如何将一列相关性转换为R中的相关性矩阵

如果y中存在x中的值,则将y行中的多个值复制到相应的x行中

通过分析特定列中的字符串在数据框中创建新的行和列

使用grepl过滤特定列范围内的列名