Я пытаюсь написать функцию, которая устанавливает подмножество набора данных, содержащего определенную строку.
Макет данных:
library(stringr)
set.seed(1)
codedata <- data.frame(
Key = sample(1:10),
ReadCodePreferredTerm = sample(c("yes", "prefer", "Had refer"), 20, replace=TRUE)
)
Определяемая пользователем функция:
findterms <- function(inputdata, variable, searchterm) {
outputdata <- inputdata[str_which(inputdata$variable, regex(searchterm, ignore_case=TRUE)), ]
return(outputdata)
}
Я ожидаю, что вернется хотя бы пара строк, но я получаю 0, когда запускаю следующий код:
findterms(codedata, ReadCodePreferredTerm, " refer") #the space in front of this word is deliberate
Я понимаю, что пытаюсь сделать что-то довольно простое ... но не могу выяснитьпочему он не работает.
Обратите внимание, что код отлично работает, когда не определен как функция:
referterms <- codedata[str_which(codedata$ReadCodePreferredTerm, regex(" refer", ignore_case=TRUE)), ]