gpt4 book ai didi

R:像 %in% 这样的操作符叫什么,我如何了解它们?

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

我知道像 == 这样的基础知识和 != ,甚至是 & 之间的差异(模糊)和 && .但是像%in%这样的东西和 %%和一些在 sprintf() 上下文中使用的东西, 喜欢 sprintf("%.2f", x)我不知道的东西。

最糟糕的是,它们很难在互联网上搜索,因为它们是特殊字符,我不知道它们叫什么……

最佳答案

百分比符号有几种不同的情况:

二元运算符

正如一些人已经指出的那样,形式 %% 的东西, %in% , %*%是二元运算符(分别是取模、匹配和矩阵乘法),就像 + , -等。它们是对两个参数进行操作的函数,由于它们的名称结构(以 % 开头和结尾),R 认为这些参数是特殊的。这允许您以以下形式使用它们:

Argument1 %fun_name% Argument2

而不是更传统的:
fun_name(Argument1, Argument2)

请记住,以下内容是等效的:
10 %% 2 == `%%`(10, 2)
"hello" %in% c("hello", "world") == `%in%`("hello", c("hello", "world"))
10 + 2 == `+`(10, 2)

R 仅识别标准运算符以及 %x%运算符是特殊的,如果您不引用它们,则允许您将它们用作传统的二元运算符。如果您引用它们(在上面的示例中使用反引号),您可以将它们用作标准的两个参数函数。

自定义二元运算符

标准二元运算符和 %x% 之间的巨大差异运算符是您可以定义自定义二元运算符,R 会将它们识别为特殊运算符并将它们视为二元运算符:
`%samp%` <- function(e1, e2) sample(e1, e2)
1:10 %samp% 2
# [1] 1 9

这里我们定义了示例函数的二元运算符版本

“%”(百分比)作为特殊函数中的记号
"%"的含义功能类似于 sprintfformat完全不同,与二元运算符无关。需要注意的关键是在这些函数中 %字符是带引号的字符串的一部分,而不是命令行上的标准符号(即 "%"% 非常不同)。在 sprintf 的上下文中, 在字符串中, "%"是用于识别后续字符具有特殊含义的特殊字符,不应将其解释为常规文本。例如,在:
sprintf("I'm a number: %.2f", runif(3))
# [1] "I'm a number: 0.96" "I'm a number: 0.74" "I'm a number: 0.99"

"%.2f" 表示浮点数 ( f ) 显示为两位小数 ( .2 )。注意 "I'm a number: "片是按字面解释的。 "%"的使用允许 sprintf用户将文字文本与关于如何表示另一个的特殊说明混合 sprintf论据。

关于R:像 %in% 这样的操作符叫什么,我如何了解它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25179457/

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