在R语言中,%o%的含义是什么?

6
我遇到了以下问题:在 R 中出现了以下情况:
x=x+y%o%c(1.5,1.5)

我想知道这里的%o%是什么意思。我试着在谷歌上搜索,但没有找到太多有用信息。

你在说哪种编程语言? - Karthik Rocky
9
?'%o%' 表示数组的外积。 - rawr
1
@KarthikRocky 询问关于 R 的问题,正如标题和标签所示。 - Gregor Thomas
我从来不知道有这样一种语言存在..刚刚Google了一下。很有趣。谢谢@Gregor - Karthik Rocky
2个回答

18

R中有许多使用%...%符号的快捷方式。%o%是数组的外积。

> 1:3 %o% 1:3
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    6
[3,]    3    6    9

还有其他几个运算符,但我最常用的是%in%

3 %in% c(1,2,3,4) #TRUE
5 %in% c(1,2,3,4) #FALSE
3.4 %in% c(1,2,3,4) #FALSE

还有一些我无法立即想起来的。但当你遇到它们时,可以使用反引号将%o%包含起来进行文档检查,例如?`%o%`或者引号?'%o%'(或?"%o%")。

由于百分号的存在,它们很难在Google中搜索到。


1
你也可以创建自己的中缀运算符(如它们所称),就像这个SO答案中所示。 - eipi10

1

一个直觉。 %o% 是外积,看例子,它返回一个矩阵。
a[1] * b 是矩阵的第一行,
a[2] * b 是矩阵的第二行。

> a = c(1, 2, 3)
> b = c(0, 2, 4)
> a %o% b
     [,1] [,2] [,3]
[1,]    0    2    4
[2,]    0    4    8
[3,]    0    6   12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接