有没有办法让foreach()返回一个命名列表/ data.frame.例如
foo <- list(a = 1, b = 2)
bar <- foreach (x = foo) %do% { x * 2 }
Run Code Online (Sandbox Code Playgroud)
回报list(2, 4).我希望它能回来list(a = 2, b = 4).
另外,有没有办法从循环体内访问名称?
(我对在foreach循环之后分配名称的解决方案不感兴趣.)
问候
在许多(解释型)编程语言中,在获取文件时会设置一个变量,以便某些代码可以确定加载文件的文件名。例如,在 ruby 中,该变量__FILE__是在加载文件时设置的。
R中有这样的功能吗?R 代码有没有办法确定它从哪里加载?
例子:
主要.R:
source("foo.R")
Run Code Online (Sandbox Code Playgroud)
/home/bar/foo.R:
print(FULL_FILENAME)
Run Code Online (Sandbox Code Playgroud)
我必须用什么替换 FULL_FILENAME 才能打印:
[1] "/home/bar/foo.R"
Run Code Online (Sandbox Code Playgroud)
无需在源代码中硬编码任何文件名?
我使用knitr的spin()函数来生成html报告.
有没有办法让spin()以某种方式为注释中嵌入的标题生成目录(toc)?
(注意:我不能使用pandoc,必须使用knitr提供的markdown和html生成器.)
我有以下代码片段:
require(lattice)
f.barchart <- function(...) {
barchart(...,
panel = function(x, y, ...) {
panel.barchart(x, y, ...)
}
)
}
x <- data.frame(a = c(1,1,2,2), b = c(1,2,3,4), c = c(1,2,2,1))
f.barchart(a ~ b, data = x, groups = c)
Run Code Online (Sandbox Code Playgroud)
这导致抛出以下错误:
..3 used in an incorrect context, no ... to look in
Run Code Online (Sandbox Code Playgroud)
当我使用以下定义时:
f.barchart <- function(...) {
substitute(barchart(...,
panel = function(x, y, ...) {
panel.barchart(x, y, ...)
}
))
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
barchart(a ~ b, data = x, groups = c,
panel …Run Code Online (Sandbox Code Playgroud)