-3

以下のように構造化されたRのデータセットがあります

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

私がやりたいのは、列 4 から始まり、4 列の各セットを通過し、CAGR を計算し、それぞれの Biz の値を持つ新しい列を生成する関数を R で作成することです。私が問題を抱えているのは、ループの書き方を理解することです。

どんな助けでも大歓迎です。

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 に答える