2017-05-18 1 views
3

나는 R에서 %>% 연산자로 아기 단계를 밟고 있습니다. 매우 유용하지만 때로는 단순한 물건이어야하는 것에 집착합니다. 내가 매트릭스를 평평하게 사용Magrittr %> % 매트릭스의 크기를 변경하는 연산자

mm<-matrix(nrow=4, ncol=5, seq(20)) 
dim(mm)<-NULL 

:

는 다음과 같은 예를 생각해 보자. %>%을 사용하여 mm을 어떻게 평평하게 할 수 있습니까?

+0

질문 그래서 간단하게 다음을 수행하면 원하는 것을 당신에게 친절이라는 기능을 제공합니다 R 작품이 일반적으로 주제에서 벗어난 방법에 대해서만 설명합니다. 이 주제에 [SO]에 있어야합니다. 기다리면 마이그레이션을 시도 할 수 있습니다. – gung

답변

4

하나의 해결책은 c() 다음과 같습니다

mm %>% c 
#[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
4

당신은 함수 사용할 수 있습니다

set_dim_to_null <- function(mat) { 
    dim(mat) <- NULL 
    mat 
} 

mm %>% 
    set_dim_to_null() 

또는 익명 함수와 같은 역할을 할 수 있습니다 중괄호 사용

mm %>% { 
    dim(.) <- NULL 
    . 
    } 
+0

매우 유용합니다. 나는 익명의 기능을 더 잘 이해했다. – larry77

+0

'help ("%> %")'는 반드시 읽어야합니다 –

+0

그리고 이제 http://magrittr.tidyverse.org/가 있습니다 :) –

1
mm %>% as.numeric 

도 원하는 결과.

0

Magrittr은 세터 용으로 약간의 aliases을 가지고 있습니다.

dim은 그 중 하나가 아니지만 R의 설정자는 실제로는 <-으로 끝나고 수정 된 개체를 반환하는 특별한 이름의 함수입니다.

set_dim <- `dim<-` 

당신은 파이프에 이런 별칭 또는 일반 세터의 이름을 사용할 수 있습니다 : : 있습니다

mm %>% set_dim(NULL) 
mm %>% `dim<-`(NULL)