计算自身的滞后列

时间:2017-02-13 23:45:55

标签: r

我确定有一种更简单的方法可以实现这一目标。我有以下数据框:

B <- c(1, 1, 1, 0, 1, 2, 2, 0, 0, 0)

A <- c(1:10)

df <- as.data.frame(cbind(A,B))

我想要做的是添加应用B列的第三列(C),除非B列为0,在这种情况下,将A列的百分比变化应用于C列的上一个结果。

这是我做的:

library(Hmisc)

df$New <- ifelse(df$B!=0, df$B, df$A/Lag(df$A, shift=1)*Lag(df$B, shift=1))

df$New2 <- ifelse(df$New !=0, df$New, df$A/Lag(df$A, shift=1)*Lag(df$New, shift=1))

df$New3 <- ifelse(df$New2 !=0, df$New2, df$A/Lag(df$A, shift=1)*Lag(df$New2, shift=1)) 

df$C <- pmax(df$New, df$New2, df$New3)  

df<- df[c(1,2,6)]

基本上,我需要根据以前的计算结果来计算列,所以可能是开心的,但不确定。

0 个答案:

没有答案