在case_when语句中在其内部创建的引用变量

问题描述 投票:0回答:1

我正在创建一个变量,该变量应以指定的增长率来增长对变量的先前观察。我正在用R中的case_when语句执行此操作。到目前为止,这是我的代码:

consolidated_balances_comp %>%  mutate(
  fee = 0.05/12,
  class_start = case_when(
   date == "2011-01-31" & lead(fund_name,1) == fund_name ~ balances * (1+lead(returns, 1))/2,
   TRUE ~ 0
  ),
  benchmark_compare_1 = case_when(
    date == "2011-02-28" & lag(fund_name,1) == fund_name & date_added =="2011-01-31" ~ (lag(class_start,1) + in_and_out)*(1+ returns_bench1 - fee)^0.25,
    date_added >= "2011-02-28" & lead(fund_name,1) == fund_name & lag(date,1) == date_added ~  (lag(balances,1) * (1+ returns_bench1 -fee)^0.5 + in_and_out) *(1+ returns_bench1 - fee)^0.5,
    TRUE ~ 0
  ),
  damages_benchmark_1 = case_when(
    lag(date,2) == date_added & lag(fund_name,1) == fund_name  ~     
      (lag(benchmark_compare_1,1) * (1+returns_bench1 - fee)^0.5 +in_and_out )*(1+returns_bench1 - fee)^0.5,
    lag(date,2) > date_added & lag(fund_name,1) == fund_name ~
      (damages_benchmark_1[-1] * (1+returns_bench1 - fee)^0.5 +in_and_out )*(1+returns_bench1 - fee)^0.5
  )

正是代码的最后一部分(变量“ damages_benchmark_1”)给我带来麻烦,因为我引用的是在其内部创建的变量。]​​>

我正在创建一个变量,该变量应以指定的增长率来增长对变量的先前观察。我正在用R中的case_when语句执行此操作。到目前为止,这是我的代码:...

r dplyr case-when
1个回答
0
投票

您可以通过以下方式在mutate/case_when调用中引用变量名:

© www.soinside.com 2019 - 2024. All rights reserved.