问题描述
当尝试阻止和标记我的评论列表时,它会自动成为列表。首先,它是一个“字符”类型的变量,但是当应用以下代码时,它将变成一个“列表”:
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是否真的能够打开它,但是您就可以了:)