R 构建迭代列的函数

R 构建迭代列的函数,r,function,R,Function,我试图构建一个函数,根据3个输入m,r,t计算CLV,其中m是值的数据帧,r和t是常数 M看起来像这样: 我拥有的函数代码是: CLV_cohort <- function (M,r,t){ CLV <- c() for (i in 0:t){ for (n in names(M)){ CLV[i+1] <- mean(M$n)/((1+r)^i) } } return(sum(CLV)) } CLV_cohort(M,.10

我试图构建一个函数,根据3个输入m,r,t计算CLV,其中m是值的数据帧,r和t是常数

M看起来像这样:

我拥有的函数代码是:

CLV_cohort <- function (M,r,t){
  CLV <- c()
  for (i in 0:t){
    for (n in names(M)){
      CLV[i+1] <-  mean(M$n)/((1+r)^i) 
    }
  }
  return(sum(CLV))
}

CLV_cohort(M,.10,9)

我认为我正确地遍历了这些列,但我仍然得到了我函数的NA

我认为您应该使用
M[[I+1]]
,例如

CLV_cohort <- function (M,r,t){
  CLV <- c()
  for (i in 0:t){
    CLV[i+1] <-  mean(M[[i+1]])/((1+r)^i) 
  }
  return(sum(CLV))
}

CLV\u队列我认为你应该使用
M[[I+1]]
,例如

CLV_cohort <- function (M,r,t){
  CLV <- c()
  for (i in 0:t){
    CLV[i+1] <-  mean(M[[i+1]])/((1+r)^i) 
  }
  return(sum(CLV))
}

CLV_队列似乎在@thomasscoding工作,但我认为我的制表符或函数已关闭,因为它的计算错误。它只是计算最后一列的平均值,而不是每一列的平均值。@JoshOrtega看到更新了吗这似乎很有效@ThomasCoding,但我认为我的制表符或函数不正确,因为它的计算错误。它只计算最后一列的平均值,而不是每一列的平均值。@JoshOrtega看到更新了吗?我们无法从图像复制数据。以易于复制的可复制格式添加。请阅读。我们无法从图像复制数据。以易于复制的可复制格式添加。了解。