【发布时间】:2011-09-22 05:27:26
【问题描述】:
我定义了一个名为once的函数,如下:
once <- function(x, value) {
xname <- deparse(substitute(x))
if(!exists(xname)) {
assign(xname, value, env=parent.frame())
}
invisible()
}
想法是 value 的评估很耗时,我只想在第一次运行脚本时将其分配给 x。
> z
Error: object 'z' not found
> once(z, 3)
> z
[1] 3
我真的很希望使用 once(x) <- value 而不是 once(x, value),但是如果我编写一个函数 once<-,它会因为变量不存在而感到不安:
> once(z) <- 3
Error in once(z) <- 3 : object 'z' not found
有人有办法解决这个问题吗?
ps:有没有像once<- 或一般的f<- 这样描述函数的名称?
【问题讨论】:
-
它们被称为替换函数
-
@Andrie:有关于 SO 的编码风格指南吗?我个人偏爱更多的空白,但如果这里有编码标准,我可以通过在将来遵循它们来节省编辑时间。
-
@pete 网页上太多的空白意味着问题不再适合单个屏幕并且变得非常难以阅读。那是官方的SO指南吗?可能不是。如果您不喜欢它,请随时恢复为原始版本。
标签: r