无法调用MarkovCohort()函数及source文件找不到问题求助
解决Markov队列模型复现的两个问题:函数来源与文件路径错误
一、修复source("_rmd-posts/markov.R")的文件路径错误
- 先执行
getwd()查看R当前的工作目录,确认_rmd-posts文件夹是否存在于该路径下。 - 如果文件不在对应位置,可通过以下方式解决:
- 将
markov.R文件移动到当前工作目录的_rmd-posts子文件夹中; - 使用绝对路径调用source,例如
source("~/your-project-folder/_rmd-posts/markov.R")(替换为你实际的文件路径); - 先用
setwd("path-to-your-project")切换到包含_rmd-posts的项目目录,再执行source命令。
- 将
- 可通过
list.files()查看当前目录下的文件和文件夹,验证_rmd-posts是否存在。
二、获取MarkovCohort()函数的两种方案
方案1:获取作者原始代码文件
该教程的配套代码通常存储在作者的项目仓库中,找到对应仓库下载markov.R文件,放到项目对应路径后再执行source即可。
方案2:手动实现基础版MarkovCohort()函数
如果找不到原始文件,可根据Markov队列模型的逻辑手动编写函数,以下是适配教程需求的基础版本:
MarkovCohort <- function(trans_mat, init_state, cycles) { # 初始化队列状态结果矩阵 results <- matrix(nrow = cycles + 1, ncol = length(init_state)) results[1, ] <- init_state colnames(results) <- names(init_state) # 逐周期模拟状态转移 current_cohort <- init_state for (i in 1:cycles) { current_cohort <- current_cohort %*% trans_mat results[i + 1, ] <- current_cohort } return(results) }
直接将这段代码复制到你的脚本中,即可替代source命令使用MarkovCohort()函数完成教程中的模拟操作。
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

