2017-10-07 2 views
0

내 case_when에서 찾을 수 없음 :이 시점에서개체 나는이처럼 보이는 dataframe이 파이프

gov1rlc gov2rlc gov3rlc gov1vote gov2vote gov3vote 
    <int> <int> <int> <dbl> <dbl> <dbl> 
    3  2  NA 24.35  1.04  0 
    2  3  2  NA  24.35  1.04   
    3  2  NA 24.35  1.04  0 
    3  NA  NA 54.40  0.00  0 
    3  NA  NA 54.40  0.00  0 
    3  NA  NA 54.40  0.00  0 

을, 나는 3 동일한 gov3rlc을 좌파 정당 (gov1rlc, gov2rlc의 투표 점유율을 계산하려면 이후 나는 파이프에있어 점을 고려 정말 이상하다 Error in mutate_impl(.data, dots) : object 'gov1rlc' not found를 얻고, 동일한 코드가 다른 컴퓨터에서 일했다, 그러나

d <- d %>% mutate(left_share=case_when(gov1rlc==3&gov2rlc==3&gov3rlc==3~gov1vote+gov2vote+gov3vote, 
     gov1rlc==3&gov2rlc==3&gov3rlc!=3~gov1vote+gov2vote, 
     gov1rlc==3&gov2rlc!=3&gov3rlc==3~gov1vote+gov3vote, 
     gov1rlc==3&gov2rlc!=3&gov3rlc!=3~gov1vote, 
    gov1rlc!=3&gov2rlc!=3&gov3rlc!=3~0, 
    gov1rlc!=3&gov2rlc==3&gov3rlc==3~gov2vote+gov3vote, 
    gov1rlc!=3&gov2rlc==3&gov3rlc!=3~gov2vote, 
    gov1rlc!=3&gov2rlc!=3&gov3rlc==3~gov3vote))` 

:), 그것을 위해 나는 다음과 같은 코드를 사용합니다.

모든 개체 앞에 d$ 연산자를 사용하면 다음 메시지가 표시됩니다. Error in mutate_impl(.data, dots) : NAs are not allowed in subscripted assignments.

간단히 말하자면 : 현재 무슨 일이 일어나고 있고 어떤 일이 벌어지고 있습니까?

+1

아주 오래된 버전의 dplyr을 사용하고있는 것 같습니다. 업데이트로 문제가 해결됩니다. –

답변

0

이 질문에 대한 귀하의 질문에 대한 직접적인 대답은 아니지만 귀하의 data.frame의 여러 열을 합산하려는 것입니다. 우리가 NA 값을 마우스 오른쪽 단추로 공유 표를 참조한다고 가정 할 경우, 같은 것을 사용하여 합계를 유지하기 위해보다 유연하고 간단 할 것이다 : 이것은 현재의 코드와 같은 정보를 생성한다

df %>% 
rowwise() %>% 
mutate(vote_share = sum(gov1vote, gov2vote, gov3vote, na.rm = T)) 

을하고, 당신이 가고있는 깔끔한 틀 안에 있습니다. 나는 Konrad가 가장 최근 버전으로 정리를 업데이트한다는 의견을 표시합니다. 나는 다소 최근까지 rowwise()이 추가 된 것을 믿지 않는다.

+0

고맙습니다. Jacob and Konrad. tidyverse의 업데이트로 문제가 완전히 해결되었습니다! – ELazzari

관련 문제