【发布时间】:2011-02-18 14:58:50
【问题描述】:
在一个函数中,我定义了一堆这样的标量变量:
a <- 10
b <- a*100
c <- a + b
在函数结束时,我想在一个命名向量中返回a,b,c,与变量同名,编码最少,即我不 em> 想做的事:
c( a = a, b = b, c = c )
有这样的语言结构吗?例如,如果我只是简单地执行return(c(a,b,c)),它会返回一个未命名的向量,这不是我想要的。我目前有一种 hacky 方法:
> cbind(a,b,c)[1,]
a b c
10 1000 1010
有没有更好、更简单的方法?
【问题讨论】:
-
还有什么比 c(a=a,b=b,c=c) 更小?您必须在某处指定名称和值。或者你想让它神奇地意识到'a'被称为'a'?
-
是的,这就是我想要的——例如上面的
cbind做到了这一点,我对它的简约性非常满意,但我想知道是否有更直接的方法。变量名可能很长......我想节省打字时间:) -
你想节省打字,但是你混淆了你的代码(如果我看到这样的结构,我会尽快把它从代码中取出来),并且在处理 big and/or 时你会失去相当多的性能很多向量。我真的会再想一想,您是否没有找到可以以不同方式解决的问题的解决方案。
-
您为什么要在函数中节省打字时间?你只写一次。我鼓励您转而关注执行速度和清晰度。
-
@Joshua 我总体上同意你的看法。我只是对
cbind()保留变量名而c()没有这一事实感到困扰,所以我正在检查是否有一种简单的方法可以实现这一点。
标签: r