R:将类型“列表”转换为数据框以转换为excel-文本挖掘

问题描述

当尝试阻止和标记我的评论列表时,它会自动成为列表。首先,它是一个“字符”类型的变量,但是当应用以下代码时,它将变成一个“列表”:

reviews <- tokenize_word_stems(reviews)

我最终希望将其转换为excel,但是我的write_xlsx函数只能转换数据帧,而不能转换列表。

我的其余代码看起来像这样,但是在尝试阻止单词时却出现了“错误”:

reviews <- readLines("Reviewlist.csv")
reviews <- gsub(pattern = "\\W",replace = " ",reviews)
reviews <- tolower(reviews)
reviews <- gsub(pattern="\\b[A-z]\\b{1}",replace=" ",reviews)
reviews <- stripwhitespace(reviews)
reviews <- removeWords(reviews,stopwords())
reviews <- tokenize_word_stems(reviews)

文件

谢谢!

解决方法

根据我的假设,在此处创建lorem-ipsum虚拟输入。您的“ Reviewlist.csv”看起来像什么。

library(dplyr)
library(stringi)

stri_rand_lipsum(5) %>%
  writeLines("Reviewlist.csv")

然后,这只是您的原始代码,没有任何改动,但是使用了dplyr语法并明确说明了必要的库:

library(tm)
library(tokenizers)

reviews <- readLines("Reviewlist.csv") %>%
  gsub(pattern = "\\W",replace = " ",.) %>%
  tolower() %>%
  gsub(pattern="\\b[A-z]\\b{1}",replace=" ",.) %>%
  stripWhitespace() %>%
  removeWords(stopwords()) %>%
  tokenize_word_stems()

现在,您可以做的是将列表项绑定到数据框,然后再将其写入xlsx文件中:


library(purrr)
library(writexl)

reviews_df <- reviews %>%
    map_dfr(~ setNames(.,sprintf("word_%04d",seq_along(.))))

reviews_df %>%
  write_xlsx("Reviewlist.xlsx")

这可能会为您创建一个非常宽的xlsx。
不知道Excel是否真的能够打开它,但是您就可以了:)