我想将对象的值作为参数传递给函数。
# This is my object
anObject <- "an_unkown_string"
# I would like to do the equivalent of:
someFunc("an_unkown_string")
# .. by somehow calling on the object containing the string
someFunc( ??? (anObject) )
Run Code Online (Sandbox Code Playgroud)
例如,使用下面的示例函数(基于save()):
someFunc <- function(...) {
names <- as.character(substitute(list(...)))[-1L]
return(names)
}
# Ideally, the output would be:
someFunc( ??? (anObject) )
[1] "an_unkown_string"
Run Code Online (Sandbox Code Playgroud)
我无权修改someFunc
我已尝试以下操作,但没有成功。
someFunc(Name_of_Object)
someFunc(eval(Name_of_Object))
someFunc(evalq(Name_of_Object))
someFunc(force(Name_of_Object))
someFunc(eval(parse(text=Name_of_Object)))
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。
这是在 R 中创建作用域表达式的合适方法,即封装命令,其变量在评估后被消除。
我现在使用的方式涉及使用with():
> with(data.frame(), {foo <- 5; bar <- 6; foo + bar})
[1] 11
> foo
Error: object 'foo' not found
Run Code Online (Sandbox Code Playgroud)
但这显然是一个黑客。
(顺便说一句,如果您传递c()而不是data.frame()to with(),则新变量实际上最终会出现在父环境中;不知道为什么)
有没有办法从包含人类可读数字单位的字符串中计算表达式?
例如:
myformula='1u+1e-6'
result = eval(myformula)
Run Code Online (Sandbox Code Playgroud)
......应该等于1e-6+1e-6(其中u = micro).
我有一个函数,它将函数列表作为参数.
library(moments)
library(plyr)
tests <- list(mean, varience, skewness, kurtosis)
f <- function(X, tests){
out <- each(... = tests)(X) #each from plyr
names(out) <- GetNames(tests)
out
}
Run Code Online (Sandbox Code Playgroud)
我想GetNames获取对象列表,在本例中为函数,并将对象的名称作为文本返回.理想情况下,我想GetNames使用任何命名对象列表:
> GetNames(tests)
[1] "mean" "varience" "skewness" "kurtosis"
Run Code Online (Sandbox Code Playgroud)
as.character(tests) 返回每个函数的代码文本,而不是它们的名称.
我试过了:
GN <- function(X) deparse(substitute(X))
GetNames <- function(X) lapply(tests, GN)
GetNames(tests)
Run Code Online (Sandbox Code Playgroud)
但这回归:
[[1]]
[1] "X[[i]]"
[[2]]
[1] "X[[i]]"
[[3]]
[1] "X[[i]]"
[[4]]
[1] "X[[i]]"
Run Code Online (Sandbox Code Playgroud)
在编写R代码时,我经常遇到这个问题的一些版本.我想要一个函数来评估它的参数的一些步骤,这里从tests它的对象的名称开始一步,然后停止并让我对结果做一些事情,这里将它们转换为字符串,而不是继续得到所指的对象我可以抓住它们之前的名字(名字).
我很好奇当评估PHP if语句时对服务器的影响是什么,即内存消耗和CPU使用率,以及这是否会成为流量增长时的主要问题?
例如,如果我在WordPress博客上的每个帖子摘要的主题中使用了很多PHP IF语句,那么如果主页开始获得高流量,这将需要更多的服务器资源吗?并且,在列出许多帖子的页面(即类别页面)上,似乎这可能成为一个问题.
我认为削减在流量激增时并非绝对必要的IF语句可能是个好主意.或者,这甚至是我担心的事情吗?
我想知道这段C语言代码中的i是如何计算的?
int x = 10, y = 20, z = 5, i;
i = x < y < z;
printf("%d\n",i);
Run Code Online (Sandbox Code Playgroud) 我的一个非常好的问题是:在 JavaScript 中,空语句的计算结果是什么?
\n这是空语句:
\n;
...如果我评估它,我会得到undefined。
console.log(eval(\';\')) // \'undefined\'Run Code Online (Sandbox Code Playgroud)\r\n然而,这是另一个空语句(在包含数字文字的语句之后):
\n1;;
...然而这似乎评估为1.
console.log(eval(\'1;;\')) // \'1\'Run Code Online (Sandbox Code Playgroud)\r\n这让我很惊讶。
\n那么,空语句的计算结果是什么?
\n我注意到规范说空语句返回“ empty”。我还不知道这意味着什么。
规范还说:
\n\n\n当使用术语 \xe2\x80\x9cempty\xe2\x80\x9d 来命名一个值时,它相当于说 \xe2\x80\x9cno 任何类型的值 \xe2\x80\x9d。
\n
因此,空语句返回“没有任何类型的值”。这意味着它无法返回undefined(这是 type 的值Undefined)。我不确定这如何映射到用户态代码。
evaluation ×7
r ×3
scope ×2
c ×1
eval ×1
expression ×1
javascript ×1
names ×1
optimization ×1
overhead ×1
php ×1
python ×1
substitution ×1
undefined ×1