关于执行马尔可夫链预测,从参考矩阵运算中我遇到了%^%运算符。以前我们知道%*%运算符会为矩阵中的每个元素返回乘法,但是当使用%^%时它应返回什么以及如何执行它,因为它返回错误。
低于以下条件:
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
但它返回错误。请任何可以提供帮助的人。很感谢。
答案 0 :(得分:1)
我假设您是从%*%
运算符推断出来的。 https://www.statmethods.net/advstats/matrix.html这可能会对您的问题有所帮助。
但是,默认情况下%^%不存在,但是有一个包。请在此处查看此问题https://stats.stackexchange.com/questions/4320/compute-the-power-of-a-matrix-in-r/187477。
答案 1 :(得分:1)
你可能指的是一个重载的运算符。
例如,考虑我可以将重载运算符'%^%'定义为:
'%^%' <- 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
因此,在您的情况下,它是一个需要定义的自定义运算符,然后才能使用它(实现也可以来自libray)。
答案 2 :(得分:0)
你可以编写一个函数来计算R中矩阵的幂:
multi<-function(A,n){
temp_mat<-A
for (i in 2:n){
temp_mat<-temp_mat%*%A
}
return(temp_mat)
}