0
我有下面的代码,其中我有一个循环以上,其被馈送以单个值X
:可变数据
n = 25
X = 1
p = 0.2 #probability
P = matrix(c(p, 1-p, 0, 0, 0, 0,
p, 0, 1-p, 0, 0, 0,
p, 0, 0, 1-p, 0, 0,
0, p, 0, 0, 1-p, 0,
0, 0, p, 0, 0, 1-p,
0, 0, 0, p, 0, 1-p),
ncol=6, nrow=6, byrow = TRUE) #transition matrix
for(i in 1:n){
Y = runif(1) #uniform sample
k = P[X[i], ] #calculate k values
k = cumsum(k)
if(Y <= k[1]){ #update the chain
X[i+1] = 1}
else if(Y <= k[2]){
X[i+1] = 2}
else if (Y <= k[3]){
X[i+1] = 3}
else if (Y<=k[4]){
X[i+1] = 4}
else if (Y<=k[5]){
X[i+1] = 5}
else {X[i+1]=6}
}
plot(1:n, X[1:i], type = 's')
我想知道,可以设置我的X像多数据X = c(1,3,4)
,这样我可以只用一行代码就可以运行X
的所有三个值,而不必通过更改X
的值来重新进行重新计算?应该生成三张图。
你想出口地块为PDF?我是否正确理解?:您正在寻找1行代码,这会产生三个输入值“X”的图表? –