2017-12-30 32 views
3

저는 dplyr에 대한 이해가있는 문제를 보여주는 학업 수행을하고 있습니다. 베이스 -R 구문을 사용하여 홍채 데이터 세트를 재구성 해 보겠습니다.dplyr 파이핑은 동일한 코드를 사용하는 기본 R 구문과 다른 결과를 산출합니다.

library(dplyr) 

bind_cols(iris[1], iris[-1]) 

좋아요. 이제 모든 것을 dplyr로 파이프 처리하고 홍채 데이터 세트의 모든 열을 두 배로 늘립니다. 이 두 가지 코드로 동일한 결과가 나오면 안됩니까?

iris %>% bind_cols(.[1], .[-1]) 
+5

하위 집합과 마찬가지로'.'을하면 위의 두 번째 예제와 같이 첫 번째 매개 변수로 전달됩니다. 변경되지 않은'.'을 매개 변수에 전달하면 해당 매개 변수에만 전달됩니다 (예 : '100 %> % rnorm (10, 평균 =.)'. 첫 번째 매개 변수로 전달되지 않게하려면 표현식을 중괄호로 묶습니다. 'iris %> % {bind_cols (. [1],. [- 1])}}'.'에 지정된 경우에만 전달됩니다. – alistaire

+0

그게 그 설명입니다. 고맙습니다. – stackinator

답변

3

다음을 참조하십시오. iris %>% bind_cols(.[1], .[-1])bind_cols의 첫 번째 인수가 %>%보다 앞에 있기 때문에 bind_cols(iris, iris[1], iris[-1])과 같습니다. 결과는 나에게 의미가 있습니다.

aa <- iris %>% bind_cols(.[1], .[-1]) 

bb <- bind_cols(iris, iris[1], iris[-1]) 

identical(aa, bb) 
# [1] TRUE 
+4

니스. 그리고 'iris %> % {bind_cols (. [1],. [- 1])}}는'bind_cols (iris [1], iris [-1])'과 같은 결과를 낳습니다. – Tino

+0

@Tino 공유해 주셔서 감사합니다. 나는 전에'{'를 사용하는 것을 몰랐다. – www

+3

뭔가 계획을 세우고 싶을 때와 같은 데이터를 기반으로 테이블을 출력 할 때 유용하다는 것을 알았습니다 :'% d print % (print) {ggplot() + ...}} %> % ...' T> %'는'magrittr'에서 파생 된 환상적인 종류의 파이프입니다. – Tino