gpt4 book ai didi

r - 从...函数参数中制作一个列表

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

这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the help center .




9年前关闭。




这是我刚刚遇到的一个难题:

x <- data.frame(a="hi",b="lo")
y <- data.frame(a="hi",b="lo")

getCommonNames <- function(...) {
l <- list(...)
sapply( l, names )
}

对比
getCommonNames2 <- function(...) {
sapply( list(...), names )
}


> getCommonNames2(x,y)
Error in lapply(X = X, FUN = FUN, ...) :
argument "X" is missing, with no default
> getCommonNames(x,y)
[,1] [,2]
[1,] "a" "a"
[2,] "b" "b"

为什么 list(...)当存储到某个东西(或用作返回值)时,正确地将其内容强制转换为列表,但在没有先存储它的情况下在表达式中使用时则不能?

这似乎是一件小事,但它有点打破了我的 R 解析心智模型,其中所有内容都得到解决,然后存储或传递给下一个参数。我学会了不要忽视这样的时刻,因为重新构建我的心智模型以将新信息考虑在内通常会导致对事物的更深入理解。

所以……这是怎么回事?

最佳答案

这可能是您的 R 版本中的错误或您当前环境中的某些不匹配。
我的版本没有重现同样的问题,它只是按预期进行。

> x <- data.frame(a="hi",b="lo")
> y <- data.frame(a="hi",b="lo")
>
> getCommonNames <- function(...) {
+ l <- list(...)
+ sapply( l, names )
+ }
>
>
> getCommonNames2 <- function(...) {
+ sapply( list(...), names )
+ }
>
> getCommonNames2(x,y)
[,1] [,2]
[1,] "a" "a"
[2,] "b" "b"
> getCommonNames(x,y)
[,1] [,2]
[1,] "a" "a"
[2,] "b" "b"


version.string R version 2.14.0 (2011-10-31)

关于r - 从...函数参数中制作一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11851552/

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