R 中的 %<-% 运算符是什么?
What is the %<-% operator in R?
我在这个博客上遇到了一个新的管道 R 运算符 %<-%
:tokenize_fun()
函数中的 https://blogs.rstudio.com/ai/posts/2019-09-30-bert-r/。
这个运算符叫什么?它有什么作用?
我在 google 上找不到有关它的任何信息。我知道其他管道运算符,如 %>%
、%T>%
、%$%
它是来自zeallot
的多重赋值运算符
%<-% and %->% invisibly returnvalue.
These operators are used primarily for their assignment side-effect.
%<-% and %->% assign into the environment in which they are evaluated.
即它从一行代码创建多个对象
> library(zeallot)
> c(x, y, z) %<-% c(1, 3, 5)
> x
[1] 1
> y
[1] 3
> z
[1] 5
如果查看链接 post 中的代码,就会清楚该运算符的作用。让我们看一下tokenize_fun中的第一行:
tokenize_fun = function(dataset) {
c(indices, target, segments) %<-% list(list(),list(),list())
该行实质上在主列表中创建了三个空列表来保存索引、目标和段。这些稍后通过 append
.
填充
编辑:下面有关于函数具体名称的回答。我会在这里留下这个答案,以防它提供一些额外的上下文。
一般来说,可以在%中定义一个infix
运算符。 %` 形式。在这种情况下,作者可能想通过单行代码“模仿”类似 python 的多重赋值。
我在这个博客上遇到了一个新的管道 R 运算符 %<-%
:tokenize_fun()
函数中的 https://blogs.rstudio.com/ai/posts/2019-09-30-bert-r/。
这个运算符叫什么?它有什么作用?
我在 google 上找不到有关它的任何信息。我知道其他管道运算符,如 %>%
、%T>%
、%$%
它是来自zeallot
%<-% and %->% invisibly returnvalue.
These operators are used primarily for their assignment side-effect. %<-% and %->% assign into the environment in which they are evaluated.
即它从一行代码创建多个对象
> library(zeallot)
> c(x, y, z) %<-% c(1, 3, 5)
> x
[1] 1
> y
[1] 3
> z
[1] 5
如果查看链接 post 中的代码,就会清楚该运算符的作用。让我们看一下tokenize_fun中的第一行:
tokenize_fun = function(dataset) {
c(indices, target, segments) %<-% list(list(),list(),list())
该行实质上在主列表中创建了三个空列表来保存索引、目标和段。这些稍后通过 append
.
编辑:下面有关于函数具体名称的回答。我会在这里留下这个答案,以防它提供一些额外的上下文。
一般来说,可以在%中定义一个infix
运算符。 %` 形式。在这种情况下,作者可能想通过单行代码“模仿”类似 python 的多重赋值。