使用if else语句在df的几列上循环

时间:2020-05-19 10:25:55

标签: r dataframe simulation

我目前正在为大学构建工具,需要在if else语句上运行一个循环并将结果存储在新变量中。如果您对我有什么建议,那就太好了。

该工具的主要思想是基于另一个数据帧的用户输入来模拟数据帧上的值。用户可以决定正态分布,三角形分布等。

我需要帮助的是一个循环,它一方面改变了新变量,另一方面改变了第一个数据帧的几列。

到目前为止,这是我的代码:

runs = 10000
count.guv <- 3
count.distr <-  1

for (i in distribution){
  if(distribution[i]==1){
    sim.price.dev[i] <- rnorm(runs,mean = mean(data.matrix(df.guv.fiktiv[count.guv]), sd = sd(data.matrix(df.guv.fiktiv[count.guv]))))
  } else if (distribution[i]==2){
    sim.price.dev[i] <- rtriangle(runs,-0.05,0.05,mean(data.matrix(df.guv.fiktiv[count.guv])))
  }   else if (distribution[i]==3){
    sim.price.dev[i] <- runif(runs,min=-0.05,max=0.05)
  }    else if (distribution[i]==4){
    sim.price.dev[i] <- rlnorm(runs,meanlog = mean(log(data.matrix(df.guv.fiktiv[count.guv]))), sdlog = sd(log(data.matrix(df.guv.fiktiv[count.guv]))))
  }      else if (distribution[i]==5){
    sim.price.dev[i] <- df.guv.fiktiv[nrow(df.guv.fiktiv),count.guv]
} else {
    sim.price.dev&i <- df.guv.fiktiv[nrow(df.guv.fiktiv),count.guv]
  }
  count.guv <- count.guv+1
}

0 个答案:

没有答案
相关问题