2017-05-18 11 views
3

私は赤の%>%演算子で私の赤ちゃんのステップを作っています。これは非常に便利ですが、時には単純なものでなければならないことに固執します。私は行列を平坦化するために使用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)