2017-12-08 22 views
0

私はこの列をデータフレームに持っています。数量に応じてnummrec変数を変更してください

STR(a)の

$ : int [1:2] 2 2 
$ : int [1:2] 0 3 
$ : int [1:2] 0 0 
$ : int [1:2] 0 0 
$ : int [1:2] 10 9 

dput(a)の

list(c(2L, 2L), c(0L, 3L), c(0L, 0L), c(0L, 0L), 10:9) 

あなたが見ることができるように、すべての行は、2つの数値を構成されています。私は新しい列にこれらのうちの新しい変数を作成したいと思います。次のように

条件は

  • 2つの数の第一が第二1より大きい場合 - 第二の数が第1より大きい場合> -1
  • - > +1
  • 両方の数値が等しい場合 - > 0

ようになります結果は次のとおりです。

 a (old variable) b (new variable) 
1. 2 2    0  
2. 0 3    1 
3. 0 0    0 
4. 0 0    0 
5. 10 9    -1 

次のコードを試しましたが、エラーが発生しました。

a %>% mutate(b = ifelese(sapply(a,'[[',1) == sapply(a,'[[',2), 0, ifelese(sapply(a,'[[',1) > sapply(a,'[[',2), -1, felese(sapply(a,'[[',1) < sapply(a,'[[',2), 1, NA)))) 

    Error in UseMethod("mutate_") : no applicable method for 'mutate_' applied to an object of class "list" 

非常に高く評価されています。

答えて

3

これはどう:

sapply(a, function(x) sign(diff(x))) 
#[1] 0 1 0 0 -1 
関連する問題