Can you boil that down into a short reproducible example?
For instance, when you run your function at the end> newdf <- myfunc(lst)
I can't run it myself because I don't know what lst is. Although it
seems not
to matter - what are you passing as an argument to the function, since
it seems to
be completely overwritten.
Also, calling setwd() within a function seems like a bad idea, because
it guarantees that nobody but you can ever use it. And why would you,
rather than passing the working directory as an argument if it's
crucial?
Sarah
On Thu, Jun 9, 2011 at 11:14 AM, Abraham Mathew <abraham at
thisorthat.com> wrote:> I have a really long functions, and at the end of the function, I am using
a
> if statement
> to tag certain keywords based on whether they have certain values contained
> in them.
>
> However, the if statement doesn't seem to work.
>
> When I had split up the commands into various functions, it worked fine,
but
> I'm not sure
> what going on now that it's combined into a single function.
>
>
> myfunc <- function(lst) {
> ? ? ?options(max.print=100000)
> ? ? ?setwd("~/Desktop/RStuff")
> ? ? ?state <- c("Alabama", "Alaska",
"Arizona", "Arkansas", "California",
> "Colorado", "Connecticut", "Deleware",
"Florida",
> ? ? ? ? ?"Georgia", "Hawaii", "Idaho",
"Illinois", "Indiana", "Iowa",
> "Kansas", "Kentucky", "Louisiana",
"Maine",
> ? ? ? ? ?"Maryland", "Massachusetts",
"Michigan", "Minnesota",
> "Mississippi", "Missouri", "Montana",
"Nebraska",
> ? ? ? ? ?"Nevada", "New Hampshire", "New
Jersey", "New Mexico", "New York",
> "North Carolina", "North Dakota", "Ohio",
> ? ? ? ? ?"Oklahoma", "Oregon",
"Pennsylvania", "Rhode Island", "South
> Carolina", "South Dakota", "Tenessee",
"Texas",
> ? ? ? ? ?"Utah", "Vermont", "Virginia",
"Washington", "West Virginia",
> "Wisconsin", "Wyoming", "AL", "AK",
"AZ", "AR", "CA",
> ? ? ? ? ?"CO", "CT", "DE", "FL",
"GA", "HI", "ID", "IL", "IN",
"IA", "KS",
> "KY", "LA", "ME", "MD",
"MA", "MI", "MN", "MS",
> ? ? ? ? ?"MO", "MT", "NE", "NV",
"NH", "NJ", "NM", "NY", "NC",
"ND", "OH",
> "OK", "OR", "PA", "RI",
"SC", "SD", "TN", "TX",
> ? ? ? ? ?"UT", "VT", "VA", "WA",
"WV", "WI", "WY")
> ? ? ?inscompany <- c("21st Century", "AAA",
"Alliance United", "Allied",
> "American Automobile Association", "AARP",
"AIG",
> ? ? ? ? ?"American International Group", "Allstate",
"All State",
> "All-state", "American States", "American
Income", "AMICA",
> ? ? ? ? ?"American Family", "ANPAC", "American
National Property and
> Casualty", "AutoOne", "Auto One",
"Auto-One", "Auto-Owners",
> ? ? ? ? ?"Auto Owners", "AutoOwners",
"Balboa", "Chubb Corporation",
> "Commerce", "Conseco", "Country Financial",
"DeerBrook",
> ? ? ? ? ?"Eastwood", "East Wood",
"East-Wood", "Encompass", "Erie",
> "Esurance", "E-surance", "Evergreen",
"Farmers", "Geico",
> ? ? ? ? ?"General", "GMAC", "Hanover",
"Hartford", "Infinity", "Kemper",
> "Liberty Mutual", "Loya", "Mercury",
"MetLife", "Met Life",
> ? ? ? ? ?"Met-Life", "Mid-Century", "Mid
Century", "Nationwide",
> "OldAmerican", "Old-American", "Old
American", "Pemco", "Progressive",
> ? ? ? ? ?"Regence Group", "Reliance",
"Response", "Safe", "Safe Auto",
> "SafeAuto", "Safe-Auto", "Safeco",
"SafeCo", "Safeway",
> ? ? ? ? ?"Santa Fe", "Santa-Fe", "SantaFe",
"Sentry", "Shelter",
> "Standard", "State Farm", "StateFarm",
"State-Farm", "Titan",
> ? ? ? ? ?"Travelers", "Unitrin", "USAA",
"Wells Fargo", "Western",
> "Westfield", "West Coast", "West-Coast",
"WestCoast")
> ? ? ?agency <- c("Eastwood", "Tompkins",
"ABC", "United", "Trusted
> Choice")
> ? ? ?city = c("New York City", "Los Angeles",
"Chicago", "Houston",
> "Philadelphia",
> ? ? ? ? ?"Phoenix", "San Diego", "San
Antonio", "Dallas", "Detroit", "San
> Jose",
> ? ? ? ? ?"Indianapolis", "Jacksonville", "San
Francisco", "Columbus",
> "Austin",
> ? ? ? ? ?"Memphis", "Baltimore", "Milwaukee",
"Fort Worth", "Charlotte",
> "El Paso",
> ? ? ? ? ?"Boston", "Seattle", "Washington
DC", "Denver", "Nashville",
> "Portland",
> ? ? ? ? ?"Oklahoma City", "Las Vegas",
"Tucson", "Long Beach",
> "Albuquerque",
> ? ? ? ? ?"New Orleans", "Cleveland",
"Fresno", "Sacramento", "Kansas City",
>
> ? ? ? ? ?"Virginia Beach", "Mesa", "Atlanta",
"Omaha", "Oakland", "Tulsa",
> "Honolulu",
> ? ? ? ? ?"Miami", "Minneapolis", "Colorado
Springs", "Arlington",
> "Wichita", "Santa Ana",
> ? ? ? ? ?"Anaheim", "St. Louis",
"Pittsburgh", "Tampa", "Cincinnati",
> "Raleigh", "Toledo",
> ? ? ? ? ?"Aurora", "Buffalo", "Riverside",
"St. Paul", "Corpus Christi",
> "Newark", "Stockton",
> ? ? ? ? ?"Bakersfield", "Anchorage",
"Lexington", "Louisville", "St.
> Petersburg",
> ? ? ? ? ?"Plano", "Norfolk", "Birmingham",
"Lincoln", "Glendale",
> "Greensboro", "Hialeah",
> ? ? ? ? ?"Baton Rouge", "Fort Wayne",
"Madison", "Garland", "Scottsdale",
> "Rochester",
> ? ? ? ? ?"Henderson", "Akron", "Chandler",
"Chesapeake", "Modesto",
> "Lubbock", "Fremont",
> ? ? ? ? ?"Glendale", "Montgomery", "Orlando",
"Chula Vista", "Durham",
> "Shreveport", "Laredo",
> ? ? ? ? ?"Yonkers", "Tacoma", "Anaconda",
"Butte", "Suffolk", "Buckeye",
> "Augusta", "Cusseta",
> ? ? ? ? ?"Huntsville", "Boulder City",
"Goodyear", "Hibbing", "Norman",
> "Sierra Vista",
> ? ? ? ? ?"Georgetown", "Carson City",
"Chattanooga", "Lynchburg",
> "Columbia", "Mobile",
> ? ? ? ? ?"Athens", "Little Rock", "Yuma",
"Babbitt", "Cape Coral",
> "Abilene", "Palmdale",
> ? ? ? ? ?"Jackson", "Plymouth",
"Clarksville", "Palm Springs", "Lancaster",
> "Ellsworth",
> ? ? ? ? ?"Knoxville", "Amarillo", "Dothan",
"Oak Ridge", "Edmond",
> "Beaumont", "Waco",
> ? ? ? ? ?"Port Arthur", "Toledo",
"Brownsville", "El Reno", "Henderson",
> "Jonesboro", "Caribou",
> ? ? ? ? ?"Ellsworth", "Fort Wayne",
"Independence", "Des Moines", "Lawton",
> "Rome", "North Port",
> ? ? ? ? ?"Savannah", "Lincoln", "Apple
Valley", "Springfield",
> "Victorville", "Marana", "Eloy",
> ? ? ? ? ?"Sarasota", "Concord", "Grand
Rapids", "Mission Viejo", "New
> Haven", "McAllen", "Worcester",
> ? ? ? ? ?"Syracuse", "Scranton", "Flint",
"Harrisburg", "Poughkeepsie",
> "Spokane", "Cape Coral",
> ? ? ? ? ?"Fort Wayne", "Santa Rosa", "Ann
Arbor", "South Bend", "Daytona
> Beach", "Peoria", "Atlantic City",
> ? ? ? ? ?"Antioch", "Thousand Oaks")
> ? ? ?cityst = c("New York City, NY", "Los Angeles, CA",
"Chicago, IL",
> "Houston, TX", "Philadelphia, PA",
> ? ? ? ? ?"Phoenix, AR", "San Diego, CA", "San
Antonio, TX", "Dallas, TX",
> "Detroit, MI", "San Jose, CA",
> ? ? ? ? ?"Indianapolis, IN", "Jacksonville, FL",
"San Francisco, CA",
> "Columbus, OH", "Austin, TX",
> ? ? ? ? ?"Memphis, TN", "Baltimore, MD",
"Milwaukee, WI", "Fort Worth, TX",
> "Charlotte, NC", "El Paso, TX",
> ? ? ? ? ?"Boston, MA", "Seattle, WA", "Washington
DC", "Denver, CO",
> "Nashville, TN", "Portland, OR",
> ? ? ? ? ?"Oklahoma City, OK", "Las Vegas, NV",
"Tucson, AR", "Long Beach,
> CA",
> ? ? ? ? ?"Albuquerque, NM", "New Orleans, LA",
"Cleveland, OH", "Fresno,
> CA", "Sacramento, CA",
> ? ? ? ? ?"Kansas City, MO", "Virginia Beach, VA",
"Mesa, CA", "Atlanta,
> GA", "Omaha, NE", "Oakland, CA",
> ? ? ? ? ?"Tulsa, OK", "Honolulu, HI", "Miami,
FL", "Minneapolis, MN",
> "Colorado Springs, CO",
> ? ? ? ? ?"Arlington, TX", "Wichita, KS", "Santa
Ana, CA", "Anaheim, CA",
> "St. Louis, MO", "Pittsburgh, PA",
> ? ? ? ? ?"Tampa, FL", "Cincinnati, OH", "Raleigh,
NC", "Toledo, OH",
> "Aurora, CO", "Buffalo, NY",
> ? ? ? ? ?"Riverside, CA", "St. Paul, MN", "Corpus
Christi, TX", "Newark,
> NJ", "Stockton, NJ",
> ? ? ? ? ?"Bakersfield, CA", "Anchorage, AK",
"Lexington, KY", "Louisville,
> TN", "St. Petersburg, FL",
> ? ? ? ? ?"Plano, TX", "Norfolk, VA", "Birmingham,
AL", "Lincoln, NE",
> "Glendale, AR",
> ? ? ? ? ?"Greensboro, NC", "Hialeah, FL", "Baton
Rouge, LA", "Fort Wayne,
> TX", "Madison, WI", "Garland, TX",
> ? ? ? ? ?"Scottsdale, AR", "Rochester, NY",
"Henderson, NV ", "Akron, OH",
> "Chandler, AR", "Chesapeake, VA",
> ? ? ? ? ?"Modesto, CA", "Lubbock, TX", "Fremont,
CA", "Glendale, AR",
> "Montgomery, AL", "Orlando, FL",
> ? ? ? ? ?"Chula Vista, CA", "Durham, NC",
"Shreveport, LA", "Laredo, TX",
> "Yonkers, NY", "Tacoma, WA",
> ? ? ? ? ?"Anaconda, MT", "Butte, MT", "Suffolk,
VA", "Buckeye, AR",
> "Augusta, GA", "Cusseta, GA", "Huntsville,
AL",
> ? ? ? ? ?"Boulder City, NV", "Goodyear, AZ",
"Hibbing, MN", "Norman, OK",
> "Sierra Vista, AZ", "Georgetown, GA",
> ? ? ? ? ?"Carson City, NV", "Chattanooga, TN",
"Lynchburg, TN", "Columbia,
> SC", "Kansas City, KS", "Mobile, AL",
> ? ? ? ? ?"Athens, GA", "Little Rock, AR", "Yuma,
AZ", "Babbitt, MN", "Cape
> Coral, FL", "Abilene, TX",
> ? ? ? ? ?"Palmdale, CA", "Jackson, MS", "Plymouth,
MA", "Clarksville, TN",
> "Palm Springs, CA", "Lancaster, CA",
> ? ? ? ? ?"Ellsworth, ME", "Knoxville, TN",
"Amarillo, TX", "Dothan, AL",
> "Oak Ridge, TN", "Edmond, OK",
> ? ? ? ? ?"Beaumont, TX", "Waco, TX", "Port Arthur,
TX", "Toledo, OH",
> "Brownsville, TX", "El Reno, OK",
> ? ? ? ? ?"Henderson, NV", "Jonesboro, AR",
"Caribou, ME", "Ellsworth, ME",
> "Fort Wayne, IN", "Independence, MO",
> ? ? ? ? ?"Des Moines, IA", "Lawton, OK", "Rome,
NY", "North Port, FL",
> "Savannah, GA", "Lincoln, NE",
> ? ? ? ? ?"Apple Valley, CA", "Springfield, MO",
"Victorville, CA", "Marana,
> AZ", "Eloy, AZ", "Sarasota, FL",
> ? ? ? ? ?"Concord, CA", "Grand Rapids, MI",
"Mission Viejo, CA", "New
> Haven, CT", "McAllen, TX", "Worcester, MA",
> ? ? ? ? ?"Syracuse, NY", "Scranton, PA", "Flint,
MI", "Harrisburg, PA",
> "Poughkeepsie, NY", "Augusta, CA",
> ? ? ? ? ?"Spokane, WA", "Cape Coral, FL", "Fort
Wayne, IN", "Santa Rosa,
> CA", "Ann Arbor, MI", "South Bend, IN",
> ? ? ? ? ?"Daytona Beach, FL", "Peoria, IL",
"Atlantic City, NJ", "Antioch,
> CA", "Thousand Oaks, CA")
> ? ? ?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"),
> ? ? ? ? ? ? state = c(state), inscompany = c(inscompany), city=c(city),
> ? ? ? ? ? ? cityst = c(cityst))
> ? ? ?myone <- function(x, y) {
> ? ? ? ? ?m1 <- do.call(paste, expand.grid(lst[[x]], lst[[y]]))
> ? ? ?}
> ? ? ?mytwo <- function(x, y, z){
> ? ? ? ? ?m2 <- do.call(paste, expand.grid(lst[[x]], lst[[y]], lst[[z]]))
> ? ? ?}
> ? ? ?d1 = mytwo("prefix", "roots", "suffix")
> ? ? ?d2 = mytwo("prefix", "roots", "suffix2")
> ? ? ?d3 = mytwo("prefix", "roots", "suffix3")
> ? ? ?d4 = mytwo("prefix2", "roots", "suffix")
> ? ? ?d5 = mytwo("prefix2", "roots",
"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
>
>
>
> Help,
> Abraham
> WebRep
> Overall rating
--
Sarah Goslee
http://www.functionaldiversity.org