【发布时间】:2016-03-12 02:23:09
【问题描述】:
对于我的脚本,我在 R 中返回了一堆变量,在将我的脚本拆分为更多函数后,我需要返回一些列表以及其他数据。
我知道我可以通过c(value1, value2) 返回多个值。但是当返回的项目之一实际上是一个列表时,我该怎么做呢?
我要返回 listOne,但是返回时数据类型似乎发生了变化。
如何在不更改类型的情况下返回列表?
这是一个例子:
B <- function(){
listOne <- c(1,2,3,4,5,6)
testString <- "Test"
return(list(listOne, testString))
}
returnlist <- B()
根据返回的列表给变量赋值:
copy.listOne <- returnlist# [1]
copy.testString <- returnlist[2]
预期输出:
listOne <- c(1,2,3,4,5,6)
print(sum(listOne))
# [1] 21
实际输出:
print(sum(copy.listOne))
Error in print(sum(copy.listOne)) :
error in evaluating the argument 'x' in selecting a method for function 'print': Error in sum(copy.listOne) : invalid 'type' (list) of argument
【问题讨论】:
-
使用
[[,returnlist[[1]],你也应该编辑上一个问题... -
@Lyzander谢谢!这成功了,如果你想把它写成答案,我会接受它!我实际上已经删除了另一个问题,我之前已经尝试过使用
list,但后来我意识到这是因为不同的数据类型。这就是为什么我决定删除旧问题并完全重写它的原因。希望这是正确的做法。 -
谢谢@Bas。通常你只需要编辑你以前的问题而不是删除它然后发布一个新问题。但现在很好:)。我会发布作为答案。
标签: r list return return-value