I'm writing a function and keep getting the following error message.

myfunc <- function(lst) {
lst <- list(roots = c("car insurance", "auto insurance"),
roots2 = c("insurance"), prefix = c("cheap", "budget"),
prefix2 = c("low cost"), suffix = c("quote", "quotes"),
suffix2 = c("rate", "rates"), suffix3 = c("comparison"))
myone <- function(x, y) {
nu <- do.call(paste, expand.grid(lst$x, lst$y))
mydf <- data.frame(keyword=c(nu))
}
mytwo <- function(x, y, z){
mu <- do.call(paste, expand.grid(lst$x, lst$y, lst$z))
mydf2 <- data.frame(keyword=c(mu))
}
d1 = mytwo(lst$prefix, lst$roots, lst$suffix)
d2 = mytwo(lst$prefix, lst$roots, lst$suffix2)
d3 = mytwo(lst$prefix, lst$roots, lst$suffix3)
d4 = mytwo(lst$prefix2, lst$roots, lst$suffix)
d5 = mytwo(lst$prefix2, lst$roots, lst$suffix2)
d6 = mytwo(prefix2, roots, suffix3)
d7 = mytwo(prefix, roots2, suffix)
d8 = mytwo(prefix, roots2, suffix2)
d9 = mytwo(prefix, roots2, suffix3)
d10 = mytwo(prefix2, roots2, suffix)
d11 = mytwo(prefix2, roots2, suffix2)
d12 = mytwo(prefix2, roots2, suffix3)
d13 = myone(prefix, roots)
d14 = myone(prefix2, roots)
d15 = myone(prefix, roots2)
d16 = myone(prefix2, roots2)
d17 = myone(roots, suffix)
d18 = myone(roots, suffix2)
d19 = myone(roots, suffix3)
d20 = myone(roots2, suffix)
d21 = myone(roots2, suffix2)
d22 = myone(roots2, suffix3)
d23 = myone(state, roots)
d24 = myone(city, roots)
d25 = myone(cityst, roots)
d26 = myone(inscompany, roots)
d27 = myone(state, roots2)
d28 = myone(city, roots2)
d29 = myone(cityst, roots2)
d30 = myone(inscompany, roots2)
d31 = mytwo(state, roots, suffix)
d32 = mytwo(city, roots, suffix)
d33 = mytwo(cityst, roots, suffix)
d34 = mytwo(inscompany, roots, suffix)
d35 = mytwo(state, roots, suffix2)
d36 = mytwo(city, roots, suffix2)
d37 = mytwo(cityst, roots, suffix2)
d38 = mytwo(inscompany, roots, suffix2)
d39 = mytwo(state, roots, suffix3)
d40 = mytwo(city, roots, suffix3)
d41 = mytwo(cityst, roots, suffix3)
d42 = mytwo(inscompany, roots, suffix3)
d43 = mytwo(state, roots2, suffix)
d44 = mytwo(city, roots2, suffix)
d45 = mytwo(cityst, roots2, suffix)
d46 = mytwo(inscompany, roots2, suffix)
d47 = mytwo(state, roots2, suffix2)
d48 = mytwo(city, roots2, suffix2)
d49 = mytwo(cityst, roots2, suffix2)
d50 = mytwo(inscompany, roots2, suffix2)
d51 = mytwo(state, roots2, suffix3)
d52 = mytwo(city, roots2, suffix3)
d53 = mytwo(cityst, roots2, suffix3)
d54 = mytwo(inscompany, roots2, suffix3)
d55 = mytwo(prefix, state, roots)
d56 = mytwo(prefix, city, roots)
d57 = mytwo(prefix, cityst, roots)
d58 = mytwo(prefix, inscompany, roots)
d59 = mytwo(prefix2, state, roots)
d60 = mytwo(prefix2, city, roots)
d61 = mytwo(prefix2, cityst, roots)
d62 = mytwo(prefix2, inscompany, roots)
d63 = mytwo(prefix, state, roots2)
d64 = mytwo(prefix, city, roots2)
d65 = mytwo(prefix, cityst, roots2)
d66 = mytwo(prefix, inscompany, roots2)
d67 = mytwo(prefix2, state, roots2)
d68 = mytwo(prefix2, city, roots2)
d69 = mytwo(prefix2, cityst, roots2)
d70 = mytwo(prefix2, inscompany, roots2)
mydf <- rbind(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14,
d15,
d16, d17, d18, d19, d20, d21, d22, d23, d24, d25, d26, d27, d28, d29,
d30, d31, d32, d33, d34, d35, d36, d37, d38, d39, d40, d41, d42, d43,
d44, d45, d46, d47, d48, d49, d50, d51, d52, d53, d54, d55, d56, d57,
d58, d59, d60, d61, d62, d63, d64, d65, d66, d67, d68, d69, d70)
library(stringr)
inscompany_match <- str_c(inscompany, collapse = "|")
state_match <- str_c(state, collapse = "|")
city_match <- str_c(city, collapse = "|")
mydf$inscompany <- as.numeric(str_detect(mydf$keyword, inscompany_match))
mydf$state <- as.numeric(str_detect(mydf$keyword, state_match))
mydf$city <- as.numeric(str_detect(mydf$keyword, city_match))
for (i in 1:nrow(mydf)) {
Words = strsplit(as.character(mydf[i, 'keyword']), " ")[[1]]
if(any(Words == 'Colorado')){
if(Words[which(Words == 'Colorado') + 1] == 'Springs') mydf[i, 'state'] <- 0
}
if(any(Words == 'Virginia')){
if(Words[which(Words == 'Virginia') + 1] == 'Beach') mydf[i, 'state'] <- 0
}
if(any(Words == 'Oklahoma')){
if(Words[which(Words == 'Oklahoma') + 1] == 'City') mydf[i, 'state'] <- 0
}
if(any(Words == 'Kansas')){
if(Words[which(Words == 'Kansas') + 1] == 'City') mydf[i, 'state'] <- 0
}
if(any(Words == 'Washington')){
if(Words[which(Words == 'Washington') + 1] == 'DC') mydf[i, 'state'] <- 0
}
if(any(Words == 'York')){
if(Words[which(Words == 'York') + 1] == 'City') mydf[i, 'state'] <- 0
}
if(any(Words == "Indianapolis")){
mydf[i, 'state'] <- 0
}
if(any(Words == "AARP")){
mydf[i, 'state'] <- 0
}
if(any(Words == "ANPAC")){
mydf[i, 'state'] <- 0
}
if(any(Words == "AMICA")){
mydf[i, 'state'] <- 0
}
if(any(Words == "GMAC")){
mydf[i, 'state'] <- 0
}
if(any(Words == "USAA")){
mydf[i, 'state'] <- 0
}
return(mydf)
}
}


newdf <- myfunc(lst)


> newdf <- myfunc(lst)
Error in if (any(Words == "Colorado")) { :
missing value where TRUE/FALSE needed

What's going on?

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to