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
所以在你的情况下,它是一个自定义运算符,在你可以使用它之前需要定义它(实现也可以来自库)。
为了进行马尔可夫链预测,我遇到过%^%算子。以前我们知道 %*% 运算符会对矩阵中的每个元素进行 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
所以在你的情况下,它是一个自定义运算符,在你可以使用它之前需要定义它(实现也可以来自库)。