2016-07-26 5 views
2

베이스 R에서 다음 연산을 수행하는 dplyr 아날로그는 무엇입니까? 나는 필터를 사용하려고하지만 당신은 @alistaire 의견과 같은 결과를 얻을 수 ifelsemutate을 사용할 수 있습니다dplyr에서 필터 및 필터 없음

+0

'ifelse'로 '변경', 예 : '012.Activity %> mutate (Sepal.Length = ifelse (Sepal.Length> 2, Sepal.Length * 10, Sepal.Length))' – alistaire

+0

dplyr을 수년간 사용 해왔다. 이것을 구현하는 dplyr 확장 라이브러리가 있지만 이것은 분명히 만족스럽지 않습니다. –

+0

@alistaire 답변을 원하십니까? 당신이 먼저 그것을 생각해냅니다. 원한다면 제 거예요. – Psidom

답변

2

(A join없이) 다시 원래 데이터 세트에 갈 수

iris$Sepal.Length[iris$Sepal.Length>2] <- iris$Sepal.Length[iris$Sepal.Length>2] * 10 

:

iris %>% mutate(Sepal.Length = ifelse(Sepal.Length > 2, Sepal.Length * 10, Sepal.Length)) 
+1

좋은 답변이지만 아직 불만족 스럽습니다. 정말'mutate_if'가 없습니다. –

+0

@KonradRudolph 전에 그 기능을 실제로 사용하지 않았습니다. 더 나은 해결책이 될 수 있습니다. 나는 이것이 열 조건, 즉 열 선택을위한 술어인지 궁금합니다. – Psidom

+1

그 요점은 다음과 같습니다 : 함수 [dplyr에 존재하지 않습니다] (https://github.com/hadley/dplyr/issues/425) (dplyr 5.0은 그 이름의 함수를 소개하지만, 설명 할 수 없으며 annoyingly 뭔가 다른 것을한다). –

0

우리가 data.table를 사용하는 경우, 우리는 ifelse를 방지 할 수 있습니다 그것을 빨리

,321 0