我在 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 生成一个具有该值的新列。我遇到的麻烦是弄清楚如何编写循环。
任何帮助将不胜感激。
我还没有运行它,但这应该让你知道该怎么做。但是,我仍然建议您为以后可能从您的问题中受益的其他人发布一个示例。
编辑 - 假设以“_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
]
}