为什么我不能在knitr中对source_url进行矢量化?

时间:2013-06-19 16:48:25

标签: r knitr devtools

我正在尝试将此调用向量化为source_url,以便从GitHub加载一些函数:

library(devtools)
# Find ggnet functions.
fun = c("ggnet.R", "functions.R")
fun = paste0("https://raw.github.com/briatte/ggnet/master/", fun)
# Load ggnet functions.
source_url(fun[1], prompt = FALSE)
source_url(fun[2], prompt = FALSE)

最后两行应该能够在lapply调用中工作,但出于某种原因,这不适用于knitr:在我处理Rmd文档时使此代码有效HTML,我必须两次致电source_url

source_url中的devtoolsdownloader中的closure出现同样的错误:我的代码中有一些{{1}}类型的对象不是子集。< / p>

我怀疑这与SHA有关;任何解释都是最受欢迎的。

1 个答案:

答案 0 :(得分:1)

它与knitrdevtools或矢量化无关。这只是your(?) code中的错误,使用traceback()很容易找到它。

> library(devtools)
> # Find ggnet functions.
> fun = c("ggnet.R", "functions.R")
> fun = paste0("https://raw.github.com/briatte/ggnet/master/", fun)
> # Load ggnet functions.
> source_url(fun[1], prompt = FALSE)
SHA-1 hash of file is 2c731cbdf4a670170fb5298f7870c93677e95c7b
> source_url(fun[2], prompt = FALSE)
SHA-1 hash of file is d7d466413f9ddddc1d71982dada34e291454efcb
Error in df$Source : object of type 'closure' is not subsettable
> traceback()
7: which(df$Source == x) at file34af6f0b0be5#14
6: who.is.followed.by(df, "JacquesBompard") at file34af6f0b0be5#19
5: eval(expr, envir, enclos)
4: eval(ei, envir)
3: withVisible(eval(ei, envir))
2: source(temp_file, ...)
1: source_url(fun[2], prompt = FALSE)

您在代码中使用了dfdfstats包中的函数(F分布的密度)。我知道你可能意味着一个数据框,但你没有在代码中声明它。