gpt4 book ai didi

r - 这是预期的行为吗

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

如果这是一个含糊的问题,我很抱歉,因为我是 R 的新手。在尝试 R 时,我发现了一个奇怪的行为。当我创建一个函数时:

myfunction <- function(a,b){
print(a,b)
}

并称之为:
myfunction(b = 10, a = 20)

它返回结果 20,但如果我通过将它直接分配给变量来简单地调用它而没有函数,例如:
a <- 20
b <- 10
print(a, b)

我收到一个错误:

Error in print.default(a, b) : invalid 'digits' argument


此外,我读过可以通过以下方式在同一行中打印多个变量:
sprintf("%i %i",a, b)

所以这是一个错误,它出现在函数调用中,结果作为第一个参数?

最佳答案

它可能揭示了在不同场景中如何处理参数的一些潜在差异,但我不认为这是一个错误。

如果您打算打印这两个值,请考虑更改:

print(a,b)

类似于:
print(paste(a,b))

来自 ?print.default :
# S3 method for default
print(x, digits = NULL, quote = TRUE,
na.print = NULL, print.gap = NULL, right = FALSE,
max = NULL, useSource = TRUE, …)

x the object to be printed.

digits a non-null value for digits specifies the minimum number of
significant digits to be printed in values. The default, NULL, uses
getOption("digits"). (For the interpretation for complex numbers see
signif.) Non-integer values will be rounded down, and only values
greater than or equal to 1 and no greater than 22 are accepted.
...

因此,R 期望您实际想要打印的所有内容都包含在第一个变量 ( x ) 中。

根据您的结果和一些评论,显然在某些情况下,第二个变量被接受为有效 digits参数值,在其他情况下不是。

虽然这有点奇怪,但更重要的一点是 print(a,b)不是打印多个值的语法正确方法。

关于r - 这是预期的行为吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44607864/

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