也许我没有正确地使用R markdown,但是我的第一行代码加载了一个非常大的数据集,然后进行分析。每次我编织pdf看看它看起来像什么,它再次运行所有的代码,这需要相当长的时间。数据已经存储在环境中,所以有没有一种方法让R不运行所有的代码再次,但显示与修改的pdf?
nwnhqdif1#
如果加载非常大的数据集是个问题,可以尝试使用特殊的包来读取数据,比如readr。或者,由于您在PDF中处理设计或表示,因此您可以处理数据的子集,例如仅处理前100000行。否则,我将在第一个代码块中使用以下代码
readr
library(knitr) # global setting to create this document opts_chunk$set(cache=TRUE, echo=TRUE, # set to FALSE to remove the code output warning=FALSE, message=FALSE)
所以我不需要在每个块中都设置cache=TRUE。希望这个有用。
cache=TRUE
j13ufse22#
我的技巧也在不断发展:1.要在块的eval=params$do.readdata上使用的参数1.这种类型的构造:
eval=params$do.readdata
if (exists('<name of data table>') { load(<file>, verbose=TRUE) or st_read_feather... } else { <read in data> }
1.直到最近,我还在块上使用缓存选项,但最近我了解到,将数据的导入和处理放在一个函数中是为了将其从全局环境中移除(如果内存是一个问题的话),并返回稍后需要的较小子集或结果,因此,缓存可能不是一个选项。
2条答案
按热度按时间nwnhqdif1#
如果加载非常大的数据集是个问题,可以尝试使用特殊的包来读取数据,比如
readr
。或者,由于您在PDF中处理设计或表示,因此您可以处理数据的子集,例如仅处理前100000行。
否则,我将在第一个代码块中使用以下代码
所以我不需要在每个块中都设置
cache=TRUE
。希望这个有用。
j13ufse22#
我的技巧也在不断发展:
1.要在块的
eval=params$do.readdata
上使用的参数1.这种类型的构造:
1.直到最近,我还在块上使用缓存选项,但最近我了解到,将数据的导入和处理放在一个函数中是为了将其从全局环境中移除(如果内存是一个问题的话),并返回稍后需要的较小子集或结果,因此,缓存可能不是一个选项。