2016-05-13 3 views
0

私はRで作業していますが、ベクトル内の前のセルを参照する方法を見つけようとしています。データフレーム。以前のセルでは、本質的にある種の「遅れ(lag)」コマンドを期待しているので、1つのセルと前のセルを比較することができます。例として、私はこれらのデータを持っている:データフレームの列(遅れたセル)の前のセルを参照する方法R

A <- c(1,0,0,0,1,0,0) 
B <- c(1,1,1,1,1,0,0) 
AB_df <- cbind (A,B) 

そのセルの値が値を返すように、同じ列ベクトルの前のセルの値未満であればどのような私が欲しいのは、与えられた行で与えられたセルのためでありますこの例では、新しい列は「Aフラグ」および「Bフラグ」と呼ばれます。

A B A-flag B-flag 
1 1 0  0 
0 1 1  0 
0 1 0  0 
0 1 0  0 
1 1 0  0 
0 0 1  1 
0 0 0  0 

これを行うための構文はありますか?理想的には、既存のデータフレームに新しい列変数を作成するだけです。ここで

答えて

1

dplyrパッケージを使用して一つの解決策であり、それはlag方法です:

library(dplyr) 
AB_df <- data.frame(A = A, B = B) 
AB_df %>% mutate(A.flag = ifelse(A < lag(A, default = 0), 1, 0), 
       B.flag = ifelse(B < lag(B, default = 0), 1, 0)) 
    A B A.flag B.flag 
1 1 1  0  0 
2 0 1  1  0 
3 0 1  0  0 
4 0 1  0  0 
5 1 1  0  0 
6 0 0  1  1 
7 0 0  0  0 
関連する問題