r - 需要创建一个具有未指定行数的矩阵,以便 for 循环可以将值写入矩阵
问题描述
我正在模拟 2D 中的醉汉行走(随机行走的一种变体,如果醉汉从悬崖上掉下来就结束)。我需要知道是否有任何方法可以在不指定最初行数的情况下创建矩阵“walk”。我在想可能有一种方法可以使用数据框来做到这一点,但无法弄清楚。有人请帮忙。代码如下
#specifying parameters
nSims<- 1000
#defining walk as vector of unspecified length
walk<- matrix(NA, nrow= 999999, ncol=2)
rstep<- matrix(c(1, 0, -1, 0, 0, 1, 0, -1), nrow=4, ncol=2, byrow=TRUE)
#setting counters
nReturns<- 0
nFalls<- 0
nSuccesses<- 0
totalsteps<- 0
#setting seed number
#set.seed(77077)
#simulating trajectories until hitting N or 0
for (i in 1:nSims) {
walk[1,]<- c(0,0)
k<- 2
nsteps<- 0
repeat {
walk[k,]<- walk[k-1,]+rstep[sample(1:4, size=1),]
nSteps = nSteps + 1
if(nSteps==9999){
nSuccesses = nSuccesses + 1
break
}
else if (walk[k,1]==30) {
nFalls = nFalls + 1
break
}
else if(walk[k,1]==0 & walk[k,2]==0) {
nReturns = nReturns + 1
}
k<- k+1
totalsteps = totalsteps + 1
}
} #nFalls + nSuccesses 应该加起来为 totalsteps nFalls nReturns nSuccesses
解决方案
推荐阅读
- r - 仅选择以字母开头的字符串的前两位数字,否则不执行任何操作
- unit-testing - 将 PCOV 与 --coverage 一起使用时,代码接收测试失败
- reactjs - TypeError:无法读取 React js 中未定义的属性“有效负载”
- excel - 当我将动态表从 excel 共享给另一个人时,他们遇到了兼容性问题
- kdb - 为什么从键控表中选择不起作用
- regex - 使用正则表达式在 URL 中查找 2 个参数
- javascript - 反应 setState 不更新 AG Grid onCellValueChanged 回调中的状态
- c# - 如何在 ViewModel 中获取 CollectionView 元素的索引?
- dataframe - 如何在熊猫数据框中填充 0?
- php - 将多个查询组合成一个输出