0

3 つの列があり、4 番目の列では 3 番目の列のラグが必要です。Rでこれを行う方法

例えば

uid       timestamp    operation
 1         24-04-12    logged-in
 2         25-06-13    view content
 1         31-05-10    delete

しかし、SASで行うようにラグ関数を使用し、以下のように出力したい

uid        timestamp    operation     lag
 1         24-04-12     logged-in      
 2         25-06-13     view content  logged-in
 3         31-05-10     delete        view content

Zooパッケージを使用してラグ関数を使用していますが、発生していません.Rでこれを行う方法は?? どんなガイダンスでも大歓迎です。

4

1 に答える 1

1

zooパッケージに固有の関数 (例: ) を使用する場合、操作対象のデータがオブジェクト?lag.zooであることを確認する必要があります。zoo

operation <- c("logged-in","view current", "delete")
lag(zoo(operation),-1,na.pad=TRUE)
#         1            2            3 
#      <NA>    logged-in view current 

lag(zoo(operation),1,na.pad=TRUE)
#           1            2            3 
#view current       delete         <NA> 

それ以外の場合は、ベース R を使用してhead(およびtail) そこに到達できます。

# match the 1 and -1 to how big you want your lag:
c(rep(NA,1),head(operation,-1))
#[1] NA             "logged-in"    "view current"

c(tail(operation,-1),rep(NA,1))
#[1] "view current" "delete"       NA   
于 2013-08-13T06:11:04.907 に答える