我正在与R中的%>%
操作员一起迈步。这非常有用,但有时我会陷入必须简单的事情。
考虑以下示例:
mm<-matrix(nrow=4, ncol=5, seq(20))
dim(mm)<-NULL
我用来压扁矩阵。如何使用%>%
展平mm?
答案 0 :(得分: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
答案 1 :(得分:4)
你可以使用一个功能:
set_dim_to_null <- function(mat) {
dim(mat) <- NULL
mat
}
mm %>%
set_dim_to_null()
或者使用可以像匿名函数一样工作的大括号:
mm %>% {
dim(.) <- NULL
.
}
答案 2 :(得分:1)
mm %>% as.numeric
也会产生所需的结果。
答案 3 :(得分:0)
Magrittr有一些aliases用于制定者。
dim
不在其中,但R中的setter实际上只是具有以<-
结尾并返回修改对象的特殊名称的函数。因此,简单地执行以下操作将为您提供一个功能完善的功能,可以执行您想要的操作:
set_dim <- `dim<-`
你可以在管道中使用这样的别名或普通的setter名称:
mm %>% set_dim(NULL)
mm %>% `dim<-`(NULL)