Я не смог воспроизвести вашу ошибку.Я полагаю Ошибка: объект 'docname' не найден указывает, что subset()
не использует нестандартную оценку (по какой-то причине) и ищет объект с именем docname вместо того, чтобы признать, что вы хотите столбец с именемDOCNAME.Чтобы не рисковать, я бы процитировал имена столбцов.
Другая проблема, с которой я столкнулся, заключается в том, что quanteda
пытается использовать собственный метод подмножеств, как мне кажется.Вы можете использовать метод subset для data.frame
s, сначала преобразовав объект kwic.Насколько я знаю, объекты kwic являются обычными data.frame
s, за исключением дополнительного класса "kwic".Оборачивая kwic()
в as.data.frame()
, вы заставляете R
использовать метод подмножества data.frame
, который делает то, что вы хотите.
Вот возможное решение, включая воспроизводимые данные (вы всегда должны включатьВоспроизводимые данные в ваших вопросах, поскольку они облегчают ответ и понимание).
library(quanteda)
corpus1 <- corpus(c("I have created a dashboard using R-shiny. User will enter a word , it gets passed to KWIC command and output is displayed as tables in the main panel."))
input <- data.frame(word1 = "dashboard",
stringsAsFactors = FALSE)
subset(as.data.frame(kwic(corpus1, pattern = c(input$word1),
case_insensitive = TRUE,
window = 20)),
select = c("docname", "pre", "keyword", "post"))
Я не проверял остальную часть вашего кода, поскольку строка subset
, по-видимому, является источником вашей проблемы.Но трудно сказать, так как без полного блестящего кода я не могу воспроизвести ваше приложение.