我在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生成一个具有该值的新列。我正在做的事情是弄清楚如何编写循环。
非常感谢任何帮助。
答案 0 :(得分: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
]
}