小编lit*_*ith的帖子

foreach:保持名字

有没有办法让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循环之后分配名称的解决方案不感兴趣.)

问候

foreach r

10
推荐指数
1
解决办法
2797
查看次数

当前来源文件的完整文件名

在许多(解释型)编程语言中,在获取文件时会设置一个变量,以便某些代码可以确定加载文件的文件名。例如,在 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)

无需在源代码中硬编码任何文件名?

r

6
推荐指数
1
解决办法
3994
查看次数

使用knitr的spin()时生成目录(toc)

我使用knitr的spin()函数来生成html报告.

有没有办法让spin()以某种方式为注释中嵌入的标题生成目录(toc)?

(注意:我不能使用pandoc,必须使用knitr提供的markdown和html生成器.)

r knitr knitr-spin

4
推荐指数
2
解决办法
981
查看次数

嵌套函数中的省略号扩展:错误"..3在不正确的上下文中使用,没有......查看"

我有以下代码片段:

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)

syntax r function

3
推荐指数
1
解决办法
1874
查看次数

标签 统计

r ×4

foreach ×1

function ×1

knitr ×1

knitr-spin ×1

syntax ×1