An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110604/fef07d0b/attachment.pl>
Partial Matching
2 messages · Abraham Mathew, Gabor Grothendieck
On Sat, Jun 4, 2011 at 6:44 PM, Abraham Mathew <abmathewks at gmail.com> wrote:
Let's say that I have a string and I want to know if a single word
is present in the string. I've written the following function to see if
the word "Geico" is mentioned in the string "Cheap Geico car insurance".
However, it doesn't work, and I assume it has something to do with the any()
function. Do I need to use regular expressions? (I hope not)
main <- function(keyword){
? ? ? for( i in keyword ){
? ? ? ? ? ?n = strsplit(as.character(keyword), " ")
? ? ? ? ? ?print( n )
? ? ? ? ? ?if( any( n=="Geico" )){
? ? ? ? ? ? ? ? print( "Yes" )
? ? ? ? ?}
? ? }
}
main("Cheap Geico car insurance")
strsplit returns a one component list containing the vector of words so you want to replace the relevant statement with: n = strsplit(as.character(keyword), " ")[[1]] however, regular expressions is shorter:
x <- c("Cheap Geico car insurance", "Cheap Gorilla car insurance", "A Geicor car")
regexpr("\\bGeico\\b", x) > 0
[1] TRUE FALSE FALSE
Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com