我想从一个数据集中筛选出特定的行,这个数据集是我从项目 gutenberg r包中获得的,为此,我想只选择包含给定单词的行,但问题是我的所有行都有多个单词,所以使用filter()将不起作用。
例如:
那句话是:"The Little Vanities of Mrs. Whittaker: A Novel"
。我想过滤掉所有包含单词“novel”的行,但我找不出方法。
gutenberg_full_data <- left_join(gutenberg_works(language == "en"), gutenberg_metadata, by = "gutenberg_id")
gutenberg_full_data <- left_join(gutenberg_full_data, gutenberg_subjects)
gutenberg_full_data <- subset(gutenberg_full_data, select = -c(rights.x,has_text.x,language.y,gutenberg_bookshelf.x, gutenberg_bookshelf.y,rights.y, has_text.y,gutenberg_bookshelf.y, gutenberg_author_id.y, title.y, author.y))
gutenberg_full_data <- gutenberg_full_data[-which(is.na(gutenberg_full_data$author.x)),]
novels <- gutenberg_full_data %>% filter(subject == "Drama")
original_books <- gutenberg_download((novels), meta_fields = "title")
original_books
tidy_books <- original_books %>%
unnest_tokens(word, text)
这是我使用“gutenbergr”包获取 Dataframe 的代码。
2条答案
按热度按时间42fyovps1#
你可能正在寻找类似下面的东西。它将寻找***任何包含你输入的关键字的***字符串。
仅对特定字符串进行子集化的示例
在您的情况下(我假设)过滤出特定的字符串,并保留所有其他
如果成功了,请告诉我们。
kg7wmglp2#
您可以使用底数R的
grepl()
来执行此操作。如果单词存在,则grepl()
返回True
,否则返回False
。您的
original_books
文件需要大量下载,因此我将向您展示一个在novels
数据框的title.x
中搜索“Plays”的示例。注意,
grepl()
允许第二个参数是一个向量。因此,没有必要使用rowwise()
。如果它只允许在字符串内搜索,我们就必须使用rowwise()
。