0

簡単にするために、列 A の整数に応じてシフト引数を使用して、列 C を列 B の Lag と等しくしたいので、次のようにします。

   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)),

しかし、それは機能しません。私はNAのみを取得します。おそらくタイプの問題ですが、as.integerを使用しても機能しないため、わかりません。

どうもありがとう

4

2 に答える 2

0

解決策:シフト引数は列の値を整数としてとらないようなので、別の方法でそれを行いました:

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

B の n 番目の値を取り、n は A 列にあります

(私を助けてくれてありがとうソトス)

于 2016-10-05T14:48:26.187 に答える