使用元素明智功能调整R数据帧

时间:2018-07-23 14:46:04

标签: sql r sql-server

我正在使用RODBC使用以下语句将服务器数据下拉到数据帧中:

df <- data.frame(
                 sqlQuery(
                          channel      = ODBC_channel_string, 
                          query        = SQLquery_string
                          )
                 )

结果数据集具有以下感兴趣的分组属性:

  • 场景
  • 其他1个分组
  • 其他2人分组
  • ...
  • 按K分组的其他人

具有关键变量:

  • [时间] =未来年份(i)
  • [Spot] =第(i-1)年至第(i)年的预计有效折现率

Abbreviated Table Snip

我想做的是将[Spot]列转换为一个折扣系数,该系数取决于一致的先前值:

  • 场景
  • 其他1个分组
  • 其他2人分组
  • ...
  • 按K分组的其他人

具有关键变量:

  • [时间] =未来年份(i)
  • [Spot] =第(i-1)年至第(i)年的预计有效折现率
  • [Disc_0] = prod([Value]),对于[All Grouping] = [This Grouping] and [Time] <= [This Time]

Excel Version of Abbreviated Goal Snip

我可以使用for循环对解决方案进行编码,但是我怀疑如果原始数据帧中的行数很大,R的效率将非常低。

我希望使用dplyr的mutate的一些创造性实现:

df %>% mutate(Disc_0 = objective_function{?})

我认为R应该可以快速处理这种数据纠缠,但是我不确定是否是这种情况。我对SQL较为熟悉,可能会尝试在其中产生必要的变量。

0 个答案:

没有答案