R 中的 %^% 运算符

%^% operator in R

为了进行马尔可夫链预测,我遇到过%^%算子。以前我们知道 %*% 运算符会对矩阵中的每个元素进行 return 乘法运算,但是当使用 %^% 时,它应该 return.

以下条件如下:

ra <- matrix(c(.66, .23, .11, .46, .31, .23, .20, .31, .49), 
             nrow = 3, byrow = T) %>%
  as.data.frame()
ColumnNames  <- c("No Rain", "Light Rain", "Heavy Rain")
RowNames <- c("No Rain", "Light Rain", "Heavy Rain")
colnames(ra) <- ColumnNames
rownames(ra) <- RowNames
      
        No Rain Light Rain Heavy Rain
    No Rain       0.66       0.23       0.11
    Light Rain    0.46       0.31       0.23
    Heavy Rain    0.20       0.31       0.49

要执行第二天的预测,也许我们首先应该,

ra2 <- ra %^% 2

我假设您是从 %*% 运算符推断出来的。 https://www.statmethods.net/advstats/matrix.html 也许这对您的问题有所帮助。 但是,默认情况下 %^% 不存在,但是有一个包。也请在这里查看此问题 https://stats.stackexchange.com/questions/4320/compute-the-power-of-a-matrix-in-r/187477

你应该写一个函数来计算 R 中矩阵的幂:

multi<-function(A,n){
  temp_mat<-A
  for (i in 2:n){
    temp_mat<-temp_mat%*%A

  }
  return(temp_mat)
}

您可能指的是重载运算符。

例如,假设我可以将重载运算符 '%^%' 定义为:

'%^%' <- function(x,y) x+y

 a <- matrix(c(1,2,3,4),2,2)

 b <- matrix(c(1,2,3,4),2,2)

然后在矩阵 a 和 b 上应用运算符将​​根据我的运算符定义添加它们。

a %^% b 
    [,1] [,2]
[1,]    2    6
[2,]    4    8

还要了解 R 运算符在您的上下文中的含义,%^% 您可以这样查看自定义运算符定义:

`%^%`
function(x,y) x+y

此外,自定义运算符可以像函数调用一样使用,在这种情况下函数名称为%^%,与operand1 %^% operand2

相同
   `%^%`(a,b)
     [,1] [,2]
[1,]    2    6
[2,]    4    8

所以在你的情况下,它是一个自定义运算符,在你可以使用它之前需要定义它(实现也可以来自库)。