在 R 中进行矩阵运算的 Margrittr 管道
Margrittr pipe with matrix operations in R
我正在研究一些将矩阵作为输入并提供矩阵作为输出的函数。是否可以在不使用 .
占位符的情况下将 magrittr
管道与矩阵一起使用?理想情况下,我希望这些函数像 dplyr
链一样通过管道相互连接。问题是我经常忘记指定 .
占位符并出现错误。
library(magrittr)
set.seed(123)
m <- matrix(rnorm(10), ncol = 2)
# This works perfectly:
layout_align_x <- function(n = nodes, anchor, m = matrix){
m[n, 1] <- m[anchor, 1]
return(m)}
# This also works perfectly:
layout_align_x(c(1,2), 3, m)
# And this also:
m %>% layout_align_x(c(1,2), 3, .)
# This returns error:
m %>% layout_align_x(c(1,2), 3)
#Error in m[anchor, 1] : incorrect number of dimensions
# The goal is:
m %>%
layout_align_x(c(1,2), 3) %>%
layout_align_x(c(3,4), 5)
将您的函数更改为
layout_align_x <- function(m = matrix, n = nodes, anchor){
m[n, 1] <- m[anchor, 1]
return(m)
}
我正在研究一些将矩阵作为输入并提供矩阵作为输出的函数。是否可以在不使用 .
占位符的情况下将 magrittr
管道与矩阵一起使用?理想情况下,我希望这些函数像 dplyr
链一样通过管道相互连接。问题是我经常忘记指定 .
占位符并出现错误。
library(magrittr)
set.seed(123)
m <- matrix(rnorm(10), ncol = 2)
# This works perfectly:
layout_align_x <- function(n = nodes, anchor, m = matrix){
m[n, 1] <- m[anchor, 1]
return(m)}
# This also works perfectly:
layout_align_x(c(1,2), 3, m)
# And this also:
m %>% layout_align_x(c(1,2), 3, .)
# This returns error:
m %>% layout_align_x(c(1,2), 3)
#Error in m[anchor, 1] : incorrect number of dimensions
# The goal is:
m %>%
layout_align_x(c(1,2), 3) %>%
layout_align_x(c(3,4), 5)
将您的函数更改为
layout_align_x <- function(m = matrix, n = nodes, anchor){
m[n, 1] <- m[anchor, 1]
return(m)
}