-3

我在 R 中有一个数据集,其结构如下

Headers:
ClientID Geo Industry RevBiz1_09 RevBiz1_10 RevBiz1_11 RevBiz1_12 RevBiz2_09 RevBiz2_10 RevBiz2_11 RevBiz2_12...

我想要做的是在 R 中编写一个从第 4 列开始并遍历每组 4 列的函数,计算 CAGR 并为相应的 Biz 生成一个具有该值的新列。我遇到的麻烦是弄清楚如何编写循环。

任何帮助将不胜感激。

4

1 回答 1

1

我还没有运行它,但这应该让你知道该怎么做。但是,我仍然建议您为以后可能从您的问题中受益的其他人发布一个示例。

编辑 - 假设以“_12”结尾的列仅适用于需要计算 CAGR 的数量。

   library(data.table)
   # Getting the list of column names for which CAGR needs to be calculated
   Instances = gsub(
      colnames(dataset)[
         grepl(colnames(dataset), pattern = "_12")
         ], 
      pattern = "_12", 
      replacement = ""
   )

   for ( i in Instances )
   {
      #calculating CAGR for each i
      #dataset is a data.table and not a data.frame
      dataset[, 
         paste0("CAGR",i):= (get(paste0(i,"_12")) / get(paste0(i,"_09")) ^ 1/4) - 1
      ]

   }
于 2013-10-01T17:23:09.297 回答