Как сделать вывод функции в матрицу
Я довольно новичок в R, так что это проблема, с которой я сталкиваюсь как проблема.
В настоящее время я использую цепь Маркова с 1-й итерации до 45-й. Мне нужно использовать последующую итерацию n и n+1 в такой функции:
bk<-function(n)((B[(n+1)]-B[n])/(B[n]-0.1818182))
Тем не менее, он мне нужен, чтобы он вычислял его только так, чтобы N было только и ТОЛЬКО целым числом. Я попытался использовать цикл for, но он не работает должным образом.
for (n in 0:45){
bk<-function(n)(B[(n+1)]-B[n])/(B[n]-0.1818182)
if(bk=0)
next
print(bk)
}
Цикл for сообщает мне, что "Ошибка: неожиданная"} в "}"
(То, что я хочу, это функция для вычисления N, IFF N является целым числом. Когда N не является целым числом, результирующее значение равно 0, и поэтому я использую цикл for для исключения таких значений)
Это то, что Б
B
[1] 1.0000000 0.8000000 0.6600000 0.5560000 0.4764000 0.4145600 0.3661360 0.3280400 0.2979758 0.2741956 0.2553518
[12] 0.2403975 0.2285151 0.2190636 0.2115391 0.2055441 0.2007647 0.1969524 0.1939101 0.1914812 0.1895416 0.1879922
[23] 0.1867542 0.1857649 0.1849741 0.1843419 0.1838365 0.1834324 0.1831093 0.1828509 0.1826442 0.1824789 0.1823467
[34] 0.1822409 0.1821564 0.1820887 0.1820346 0.1819913 0.1819567 0.1819290 0.1819068 0.1818891 0.1818749 0.1818636
[45] 0.1818545 0.1818472
>
##Where B Comes from
B<-c(intialstate1[,2])
Цепь Маркова была сделана с использованием пакета цепей Маркова
MCMolFrac<-new("markovchain",
states=c("B","C","D","E"),
transitionMatrix=matrix(data=c(0.8,0.2,0,0,0.1,0.6,0.2,0.1,0,0.2,0.8,0,0,0.4,0,0.6),byrow =TRUE,ncol=4),
name= "Unimolecular Reaction Distribution")
initialstate<-c(1,0,0,0)
fvals<-function(mchain,initialstate,n) {
out<-data.frame()
names(initialstate)<-names(mchain)
for (i in 0:n)
{
iteration<-initialstate*mchain^(i)
out<-rbind(out,iteration)
}
t<-cbind(out, i=seq(0,n))
out<-out[,c(4,1:3)]
return(out)
}
intialstate1<-data.frame(fvals(mchain = MCMolFrac, initialstate= c(1,0,0,0),n=45))
##leadingtoVectorBformationAbove
По сути, мне нужно создать динамическую систему с дискретным временем. Так, что я могу сделать вывод в матрицу / вектор, чтобы я мог построить график
График конечного продукта, разные цвета разные наборы данных
Спасибо