First, let's create a dictionary for R to randomly pull names from. In this case, we want a first word and a last word, that we'll later combine to create a name similar to so many current TV shows. (Note: In some cases, I've made the first "word" or last "word" multiple words for some variety.) Feel free to make your own lists.
first <- c("Fear", "Frontier", "Nanny", "Job", "Yard", "Airport", "Half Pint", "Commando", "Fast Food", "Basketball", "Bachelorette", "Diva", "Baggage", "College", "Octane", "Clean", "Sister", "Army", "Drama", "Backyard", "Pirate", "Shark", "Project", "Model", "Survival", "Justice", "Mom", "New York", "Jersey", "Ax", "Warrior", "Ancient", "Pawn", "Throttle", "The Great American", "Knight", "American", "Outback", "Celebrity", "Air", "Restaurant", "Bachelor", "Family", "Royal", "Surf", "Ulitmate", "Date", "Operation", "Fish Tank", "Logging", "Hollywood", "Amateur", "Craft", "Mystery", "Intervention", "Dog", "Human", "Rock", "Ice Road", "Shipping", "Modern", "Crocodile", "Farm", "Amish", "Single", "Tool", "Boot Camp", "Pioneer", "Kid", "Action", "Bounty", "Paradise", "Mega", "Love", "Style", "Teen", "Pop", "Wedding", "An American", "Treasure", "Myth", "Empire", "Motorway", "Room", "Casino", "Comedy", "Undercover", "Millionaire", "Chopper", "Space", "Cajun", "Hot Rod", "The", "Colonial", "Dance", "Flying", "Sorority", "Mountain", "Auction", "Extreme", "Whale", "Storage", "Cake", "Turf", "UFO", "The Real", "Wild", "Duck", "Queer", "Voice", "Fame", "Music", "Rock Star", "BBQ", "Spouse", "Wife", "Road", "Star", "Renovation", "Comic", "Chef", "Band", "House", "Sweet") second <- c("Hunters", "Hoarders", "Contest", "Party", "Stars", "Truckers", "Camp", "Dance Crew", "Casting Call", "Inventor", "Search", "Pitmasters", "Blitz", "Marvels", "Wedding", "Crew", "Men", "Project", "Intervention", "Celebrities", "Treasure", "Master", "Days", "Wishes", "Sweets", "Haul", "Hour", "Mania", "Warrior", "Wrangler", "Restoration", "Factor", "Hot Rod", "of Love", "Inventors", "Kitchen", "Casino", "Queens", "Academy", "Superhero", "Battles", "Behavior", "Rules", "Justice", "Date", "Discoveries", "Club", "Brother", "Showdown", "Disasters", "Attack", "Contender", "People", "Raiders", "Story", "Patrol", "House", "Gypsies", "Challenge", "School", "Aliens", "Towers", "Brawlers", "Garage", "Whisperer", "Supermodel", "Boss", "Secrets", "Apprentice", "Icon", "House Party", "Pickers", "Crashers", "Nation", "Files", "Office", "Wars", "Rescue", "VIP", "Fighter", "Job", "Experiment", "Girls", "Quest", "Eats", "Moms", "Idol", "Consignment", "Life", "Dynasty", "Diners", "Chef", "Makeover", "Ninja", "Show", "Ladies", "Dancing", "Greenlight", "Mates", "Wives", "Jail", "Model", "Ship", "Family", "Videos", "Repo", "Rivals", "Room", "Dad", "Star", "Exes", "Island", "Next Door", "Missions", "Kings", "Loser", "Shore", "Assistant", "Comedians", "Rooms", "Boys")
Whew, that was long. Instead, let's look at a random sample of those.
We can make random lists using sample. Sample wants you to provide it with a vector, the sample size you want, and whether or not it should reuse items from the vector. In this case, we don't want any duplicates, so we add replace = FALSE.
first <- sample(first, 10, replace = FALSE) second <- sample(second, 12, replace = FALSE)
This gives us something more like
> first [1] "Teen" "Fame" "Basketball" "Sister" "Bachelor" [6] "Half Pint" "Myth" "Paradise" "Frontier" "Fast Food" > second [1] "Comedians" "Boss" "Experiment" "Wives" "Wedding" [6] "Intervention" "Days" "Raiders" "Attack" "Sweets" [11] "Jail" "Whisperer"
It's random, so your list will probably be different.
If you want to sort them alphabetically, use
first <- sort(first)
If we had wanted to randomly resort the whole "first" list, we could have entered the command
first <- sample(first, length(first), replace = FALSE)
Using length makes it easy to resort the whole list. You don't have to look up how many items there are in first.
Let's use length again to choose a random number that we'll use to grab a number from the first list, and then again to choose a random number that we'll use to grab a number from the second list:
rand1 <- sample(1:length(first), 1) rand2 <- sample(1:length(second), 1)
And finally, we want to pull an item from each list and concatenate them. We could concatenate to a file, but here we'll just let it print to the console.
cat(first[rand1], second[rand2], "\n")
"\n" produces a line break so we can do source(reality.R) again and have another name pop up on the next line.
If you've made a dictionary of your own and want to check for duplicates, you can do the following:
anyDuplicated(first) # if not 0, there are that many duplicates duplicated(first) # this will show which items are duplicates
Feel free to improve on my dictionary or generator. I'd love to see it.
Code available as a gist.
No comments:
Post a Comment