gpt4 book ai didi

r - 返回列表总和 : Error: invalid 'type' (list) of argument

转载 作者:行者123 更新时间:2023-12-01 12:31:04 25 4
gpt4 key购买 nike

对于我的脚本,我在 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

最佳答案

当您使用列表时,您需要使用 [[ 来对它们进行子集化。在您创建函数时的情况如下

  B <- function(){
listOne <- c(1,2,3,4,5,6)
testString <- "Test"
return(list(listOne, testString))
}
returnlist <- B()

然后您需要使用 [[ 来访问该列表的元素。

正如您在下面看到的,现在所有工作正常:

> returnlist[[1]]
[1] 1 2 3 4 5 6
> returnlist[[2]]
[1] "Test"
> sum(returnlist[[1]])
[1] 21

关于r - 返回列表总和 : Error: invalid 'type' (list) of argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com