我正在使用R编程语言。
我想模拟掷硬币,这样:
- 如果头部,则下一个头部,p = 0.6,尾部= 0.4
- 如果为尾部,则为p = 0.6和头部= 0.4的下一个尾部
使用R中的'markovchain'包,我是这样做的:
library(markovchain)
# transition matrix
P <- matrix(c(0.6, 0.4, 0.4, 0.6), byrow = TRUE, nrow = 2)
rownames(P) <- colnames(P) <- c("H", "T")
mc <- new("markovchain", states = c("H", "T"), transitionMatrix = P)
# Generate states
states <- rmarkovchain(n = 100, object = mc, t0 = "H")
# Print
table(states)
输出如下所示:
> states
[1] "H" "T" "T" "H" "T" "T" "T" "H" "H"
**我的问题:**有人能告诉我如何在R进制下做这个吗?
我想我需要:
- 创建大小为“n”的空列表
- 指定n[1] = H或T,概率为0.5
- 编写一条IFELSE语句,表示为
n[i] = ifelse(n[i-1] == "H", sample(c("H", "T"), prob = c(0.6, 0.4), sample(c("H", "T"), prob = c(0.4, 0.6))
但我不确定该怎么做。
有人能教我怎么做吗?
谢谢!
1条答案
按热度按时间f0brbegy1#
在这里。