滞后(Hmisc)在另一列R中定义了shift参数

时间:2016-10-05 09:25:13

标签: r dplyr lag hmisc

为了简单起见,我希望C列等于    列B的滞后,shift参数取决于整数    在A栏中,我想:

   A | B | C  
   0 | 5 | 5 
   2 | 6 | NA 
   3 | 7 | NA 
   2 | 8 | 6

我试过了:

library(dplyr)
library(Hmisc)
data <- mutate(data, 
    C= Lag(B, shift=as.integer(A)),

但它不起作用,我只获得NAs,它可能是一个类型问题但是    我不确定即使使用as.integer它也不起作用    有人知道为什么它不起作用?

非常感谢

2 个答案:

答案 0 :(得分:0)

来自null

lag也有shift参数,因此无需加载另一个包。一种方法是,

dplyr

答案 1 :(得分:0)

解决方案: shift参数似乎没有将列值作为整数, 所以我用另一种方式做到了:

df$C <- apply(as.data.frame(df$A), 1, function(i){ 
    nth(df$B, i) 
})

它取B的第n个值,其中n在A col

(非常感谢帮助我索托斯)