1

私はRで作業しており、次のデータがあります。

data2<- data.frame(region_name = c("West", "West", "East"),  
                   type = c("small", "big", "big"), 
                   beta_rate = 7:9,
                   gamma_rate = 4:6)

グループ化セットを実行して合計を集計します。

data_i_want <- data2 %>%
              as.data.table() %>% groupingsets(
                                  j = .(
                                         beta_total = sum(beta_rate),
                                         gamma_total = sum(gamma_rate)),
                                  by = c("region_name","type"),
                                  sets = list(
                                    c("region_name"),
                                    c("region_name","type"))
)

出力:

地域名 タイプ beta_total gamma_total
西 NA 15 9
NA 9 6
西 小さな 7 4
西 大きい 8 5
大きい 9 6

私の質問: グループ化セットをカスタム関数に追加できますか? たとえば、これは私がこれまでに持っているものです:

my_function <- function(data, var1, var2) { 
  
  data_final <- data %>%
                as.data.table() %>% groupingsets(
                  j = .(
                    beta_total = sum({{var1}}),
                    gamma_total = sum({{var2}})),
                                  by = c("region_name","type"),
                                  sets = list(
                                    c("region_name"),
                                    c("region_name","type"))
                )
}

ただし、関数を実行すると:

data_i_want <- my_function(data2, beta_rate, gamma_rate)

次のエラーが表示されます。

[.data.table(x, 0L, eval(jj), by) のエラー: オブジェクト 'var1' が見つかりません

誰でも助けることができますか?

4

1 に答える 1