Cod*_*ney 4 r knitr r-markdown
所以我正在制作一个 .rmd 文件来记录我正在构建的一些功能的开发。我在 R 工作室工作。我打字的时候注意到
```{r echo=TRUE, tidy=FALSE }
createExamData
```
Run Code Online (Sandbox Code Playgroud)
它导致了编织文件中的这一点
## function (directory)
## {
## files = list.files(directory)
## files = files[grepl("i", files)]
## files = substring(files[], 1, 4)
## examData <- LoadData(directory)
## nExams <- length(examData[[1]])
## adjMatrixStd <- list(length = nExams)
## for (i in 1:nExams) {
## iExam <- examData[[1]][[i]]
## iExam <- iExam[order(iExam[, 1]), ]
## gExam <- examData[[2]][[i]]
## gExam <- gExam[order(gExam[, 1]), ]
## key <- examData[[3]][[i]]
## adjMatrixStd <- ComputeStdAdjMatrix(gExam)
## adjMatrixWt <- ComputeWeightedMatrix(iExam, gExam, key)
## adjMatrixConv <- calculateConvinceMtd(iExam, gExam)
## save(iExam, gExam, key, adjMatrixStd, adjMatrixWt, adjMatrixConv,
## file = paste(files[i], ".Rdata", sep = ""))
## }
## }
Run Code Online (Sandbox Code Playgroud)
我已经很好地注释了我的代码,并且真的不想在 Markdown 文档中为我需要显示的每个函数重写我的注释。我的问题是,如果我在 R studio 中制作 Rmarkdown 文件,如何让 knitr 在我的函数中显示我的评论?
我应该提到当我使用选项在 R studio 中只运行单个“块”时,它打印了包含注释的函数,所以我认为它一定与 IDE 默认句柄 knitr 有关。
这不是knitr的问题,也不是您使用它的方式,也不是您使用的块选项。
问题是由于print.function()它无法访问函数的源代码,而只能访问其解析后的表示。
我怀疑这是您加载的包中的一个函数?如果是这样,一种选择是再次明确地获取该函数print()。确保getOptions("keep.source")是TRUE.
如果您不想将函数的副本提供到工作区中,则可以将其提供到环境中,然后再提供环境中print的版本:
env <- attach(NULL, name = "myenv")
sys.source("~/work/git/permute/permute/R/shuffleSet2.R", env,
keep.source = TRUE)
with(env, print(shuffleSet))
Run Code Online (Sandbox Code Playgroud)
您可能希望attach在包下方的搜索路径上找到一个位置,以便始终调用包代码并且不会给您带来问题。
究其原因有在代码中已安装的软件包没有意见是由于选项keep.source.pkgs,默认为FALSE是和需求TRUE时,包安装它有任何影响。有关此?options的更多详细信息,请参阅。