相关疑难解决方法(0)

如何从返回多个值的函数中分配?

仍然试图进入R逻辑...解压缩(在LHS上)返回多个值的函数的结果的"最佳"方法是什么?

我显然不能这样做:

R> functionReturningTwoValues <- function() { return(c(1, 2)) }
R> functionReturningTwoValues()
[1] 1 2
R> a, b <- functionReturningTwoValues()
Error: unexpected ',' in "a,"
R> c(a, b) <- functionReturningTwoValues()
Error in c(a, b) <- functionReturningTwoValues() : object 'a' not found
Run Code Online (Sandbox Code Playgroud)

我真的必须做以下事吗?

R> r <- functionReturningTwoValues()
R> a <- r[1]; b <- r[2]
Run Code Online (Sandbox Code Playgroud)

或者R程序员会写更像这样的东西:

R> functionReturningTwoValues <- function() {return(list(first=1, second=2))}
R> r <- functionReturningTwoValues()
R> r$first
[1] 1
R> r$second
[1] 2
Run Code Online (Sandbox Code Playgroud)

---编辑回答谢恩的问题---

我真的不需要给结果值部分命名.我申请一个聚合函数的第一个组件和其他到第二组件(minmax,如果它是我不需要分裂他们两个组件功能相同).

r return-value variable-assignment multiple-results assign

208
推荐指数
8
解决办法
22万
查看次数

如何从具有多个输出的功能中分配?

有没有办法输出例如2个对象而不使用list()

my.fun=function(vector, index)
       {
       a=fun.a(vector, index)
       b=fun.b(vector, index)
       output=list(a,b)
       }
Run Code Online (Sandbox Code Playgroud)

或输出2个对象列表?考虑到我也可以:

       c=fun.a(vector, index)
       d=fun.b(vector, index)
Run Code Online (Sandbox Code Playgroud)

并希望list(a,b)和另一个list(c,d)相同的功能.

这只是我正在寻找的一个小例子,我的函数应用于大对象,我将它们作为列表导出,但是我想导出一个中间计算.一种选择是在同一列表中合并所有,但我想知道是否有另一种解决方案.

r

17
推荐指数
3
解决办法
3万
查看次数