gpt4 book ai didi

r - 如何在点之后指定参数......在R中?

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

这可能归结为“如何将可选参数传递给 R 函数”。
c()例如。它的定义是:

c(..., recursive = FALSE)

但是,如果我像这样使用它 c(1:5, TRUE)它给 [1] 1 2 3 4 5 1这是完全可以理解的,但也有点奇怪,因为我希望它很容易弄清楚。我想这很简单,我只是没有看到整件事。

欢呼回答而不是肆虐。我用谷歌搜索并搜索了SO,但可能回答了太多错误并放弃了。

编辑:由于不合逻辑的例子而编辑。

最佳答案

我在等着看第一批评论者是否会回答,但他们没有,所以我会。

因为在 c() 的定义中第一个参数是 ... ,您必须完全命名后面的任何参数,它们才能正常工作。我说参数复数而不是单数参数,因为实际上在 c() 中还有第二个未记录的参数。 .见 Why does function c() accept an undocumented argument?有关更多信息。对于 ... 之前的参数,您可以使用部分参数匹配,但对于 ... 之后的那些您必须写出完整的参数名称。

您的示例中发生的情况是您正在连接 TRUE 的数值(即 1)到向量 1:5

as.numeric(TRUE)            ## numeric value of TRUE
# [1] 1
c(1:5, TRUE) ## try no arg name, wrong result
# [1] 1 2 3 4 5 1
c(1:5, rec=TRUE) ## try partial arg matching, wrong result
# rec
# 1 2 3 4 5 1

此外, recursive确实没有以您尝试使用它的方式执行任何操作。
c(1:5)
# [1] 1 2 3 4 5
c(1:5, recursive=TRUE) ## 1:5 not recursive, same result
# [1] 1 2 3 4 5
is.recursive(c(1:5))
# [1] FALSE

它更多地用于连接列表项或任何其他递归对象(请参阅 ?is.recursive )。
(x <- as.list(1:5))
# [[1]]
# [1] 1
#
# [[2]]
# [1] 2
#
# [[3]]
# [1] 3
#
# [[4]]
# [1] 4
#
# [[5]]
# [1] 5
is.recursive(x)
# [1] TRUE
c(x, recursive=TRUE) ## correct usage on recursive object x
# [1] 1 2 3 4 5

关于r - 如何在点之后指定参数......在R中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138972/

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