2016-06-01 2 views
-1

이것은 aestethic 한 질문으로 시작하지만 기능적인 것으로, 특히 magrittr에 관한 것입니다.여러 파이프를 중첩하는 방법 magrittr

cars_0 <- mtcars %>% 
    mutate(brand = row.names(.)) %>% 
    select(brand, mpg, cyl) 

new_cars <- matrix(ncol = 3, byrow = T, c(
    "VW Beetle", 25, 4, 
    "Peugeot 406", 42, 6)) # Coercing types is not an issue here. 

cars_1 <- rbind(cars_0, 
    set_colnames(new_cars, names(cars_0))) 

나는 "증가 가독성"에 대한 매트릭스에 새 차를 쓰고 있어요, 따라서 :

은 그래서 거기 이미 하나에 수동으로 입력되는 data_frame를 추가 할 그것에 대한 열 이름을 cars_0에 바인딩되도록 설정해야합니다. 누군가가 나만큼 magrittr 좋아하는 경우

, 그들은 rbind

에 그들이 cars_0와 파이프를 표시 할 수 있습니다 new_cars 제 파이프 그것을

cars_1 <- rbind(cars_0, new_cars %>% 
    set_colnames(names(cars_0)))  

set_colnames에 또는 반복을 피하기 위해 제시 할 수 있습니다

cars_1 <- cars_0 %>% 
    rbind(., set_colnames(new_cars, names(.))) 

파이프되고 누구에 대한 혼란이있는 한 사람은 모두를 할 수 없다 그러나

질문 : 파이프 된 두 개의 인수를 구별 할 수있는 방법이 있습니까?

답변

1

짧은 대답 : 아니오.

길게 대답 : 이렇게하기위한 이유가 무엇인지 모르겠습니다. magrittr의 철학은 unnest 복합 함수이며 코드를 더 쉽게 읽을 수 있도록했습니다. 예를 들어 :

f(g(h(x))) 

h(x) %>% g() %>% f() 

. 인수가 단순화의 철학에 반하는으로 두 개체를 해석하는 배치 방식으로 파이프를 사용하려고된다. 중첩 된 파이프를 가질 수있는 환경이 있지만 환경이 분명해야합니다. 동일한 환경에서 두 개의 파이프를 교차 시키려고하면 스트림을 교차하는 것과 같을 수 있습니다.

enter image description here

은 스트림을 교차하지 마십시오 : 충분한

+0

박람회. 건배. – Diego