我一直在努力解决这个问题,并且非常感谢任何帮助。
我正在尝试编写一个函数来计算马尔可夫模型的观测数据的转移矩阵。
我用来构建函数的初始数据看起来像这样;
Season Team State
1 1 Manchester United 1
2 1 Chelsea 1
3 1 Manchester City 1
.
.
.
99 5 Charlton Athletic 4
100 5 Watford 4
有5个赛季和4个州。
我知道我将如何计算转换矩阵,但为了做到这一点,我需要计算每个赛季从状态i转移到状态j的球队数量。
我需要能做类似这样的事情的代码,
a<-function(x,i,j){
if("team x is in state i in season 1 and state j in season 2") 1 else 0
}
sum(a)
然后我可以为每个队和一对州做到这一点并重复所有5个赛季。但是,我很难理解如何用引号告诉R这个东西。很抱歉,如果有一个非常明显的答案,但我是一个垃圾程序员。
非常感谢您的阅读!
答案 0 :(得分:1)
此功能告诉您团队是否从state1转换到state2从season1到season2
a <- function(team, state1, state2, data, season1, season2) {
team.rows = data[team == data["Team",],]
in.season1.in.state1 = ifelse(team.rows["Season",]==season1 && team.rows["State",state1],1,0)
in.season2.in.state2 = ifelse(team.rows["Season",]==season2 && team.rows["State",state2],1,0)
return(sum(in.season1.in.stat1) * sum(in.season2.in.state2))
}