【问题标题】:How to unnest_tokens and keep additional columns如何取消嵌套令牌并保留其他列
【发布时间】:2020-10-31 17:32:49
【问题描述】:

将 unnest_tokens 函数应用于推文会创建 1 列,其中每个单词在其自己的行中。我在每条推文的原始数据框中(天、小时、分钟)都有额外的列。有没有办法让每行单词也有三个对应的单词的天、小时和分钟的列?我尝试了以下方法:

tweet_words$text <- tweet_words %>%
  select(text) %>%
  unnest_tokens(word, text)

原始数据框有一个文本列“tweet_words$text”,其中每行是 1 条推文。我尝试将文本列重写为单个单词的列,但由于日、小时、分钟列的行数不同,因此出现以下错误。我收到以下错误。

$&lt;-.data.frame(*tmp*, text, value = list(word = c("same", : 替换有4571行,数据有300

任何想法如何促进预期的结果?

【问题讨论】:

  • 请使用dput 添加数据并显示相同的预期输出。请阅读有关how to ask a good question 的信息以及如何提供reproducible example
  • 只需使用tweet_words &lt;- tweet_words %&gt;% unnest_tokens(word, text),如果您还想获得全文,请在unnest_tokens 中使用drop = FALSE

标签: r tokenize data-cleaning unnest


【解决方案1】:

mutatedplyr

https://dplyr.tidyverse.org/reference/mutate.html

更好的是,请参阅dplyr 的介绍: https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html

只是猜测,但请尝试以下操作:

tweet_words<- tweet_words %>%
  select(everything()) %>%
  mutate(text = unnest_tokens(word, text))

展望未来,如果将数据样本放入您的问题中确实有帮助的话。使用dput 获取代码以重新创建数据。即

tmp<- tweet_words[1:3,]
dput(tmp) # Copy and paste the output of this into your question. 

我只是猜测如果没有数据样本可能会起作用。尽管如此,dplyr 小插图应该让你继续前进。

编码愉快!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    相关资源
    最近更新 更多