使用先前 magrittr 链的输出作为进一步参数的参数

bru*_*lin 2 r dplyr magrittr tidyverse

如果我有以下示例:

library(text2vec)
library(magrittr)

reviews <- movie_review[1:10,]

vocabInsomnia <- reviews$review %>% itoken(tolower, word_tokenizer, n_chunks = 10) %>%
    create_vocabulary %>%
    prune_vocabulary(term_count_min = 10, doc_proportion_max = 0.5) %>%
    vocab_vectorizer %>%
    create_dtm(<output_from_itoken>,<output_from_vocab_vectorizer>)
Run Code Online (Sandbox Code Playgroud)

您可以看到,在最后一个链序列中,我想使用前面两个步骤的输出作为函数的参数create_dtm。我只知道如何在 ie 输出之前直接输入链的输出,但不知道作为序列中第一个链的vocab_vectorizer函数的输出。itoken马格里特允许这样做吗?

akr*_*run 5

我们可以使用创建一个临时对象pipeR

library(text2vec)
library(pipeR)
library(magrittr)
reviews$review %>% 
  itoken(tolower, word_tokenizer, n_chunks = 10) %>>%
 (~ tmp) %>%
  create_vocabulary %>% 
  prune_vocabulary(term_count_min = 10, doc_proportion_max = 0.5) %>% 
  vocab_vectorizer %>% 
  create_dtm(tmp, .)
Run Code Online (Sandbox Code Playgroud)

-输出

10 x 6 sparse Matrix of class "dgCMatrix"
   an so by are he br
1   2  4  .   2  9  8
2   .  1  1   .  .  .
3   1  .  6   7  .  2
4   4  1  3   2  .  4
5   2  .  1   1  .  .
6   .  .  .   .  .  .
7   1  3  .   .  .  .
8   .  1  .   .  2  .
9   .  .  .   .  1  4
10  .  .  .   .  .  2
Run Code Online (Sandbox Code Playgroud)

  • 好的!这非常有帮助,将立即成为我工作流程的主要部分! (2认同)