2017-12-08 1 views
0

데이터 프레임에이 열이 있습니다.수량에 따라 nummrec 변수를 변경하십시오.

STR (A)

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

당신이 볼 수 있듯이

는, 모든 행이 두 숫자를 구성 (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. 새 열에서 이들 중 새 변수를 만들고 싶습니다. 다음

조건

은 :

  • 두 숫자의 처음보다 크면, 두번째 -> -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 
관련 문제