Wildcards for data frames

The wildcard package is a templating mechanism for data frames. Wildcards are placeholders for text, and you can evaluate them to generate new data frames from templates. The functionality is straightforward.

wildcard()

library(wildcard)
myths <- data.frame(
  myth = c("Bigfoot", "UFO", "Loch Ness Monster"), 
  claim = c("various", "day", "day"), 
  note = c("various", "pictures", "reported day"))
myths
wildcard(myths, wildcard = "day", values = c("today", "yesterday"))
wildcard(myths, wildcard = "day", values = c("today", "yesterday"),
  expand = FALSE)
wildcard(myths, wildcard = "day", values = c("today", "yesterday"),
  include = "claim")
wildcard(myths, wildcard = "day", values = c("today", "yesterday"),
  exclude = c("claim", "note"))
locations <- data.frame(
  myth = c("Bigfoot", "UFO", "Loch Ness Monster"),
  origin = "where")
rules <- list(
  where = c("North America", "various", "Scotland"),
  UFO = c("spaceship", "saucer"))
wildcard(locations, rules = rules, expand = c(FALSE, TRUE))
numbers <- data.frame(x = 4, y = 3, z = 4444, w = 4.434)
wildcard(numbers, wildcard = 4, values = 7)

expandrows()

df <- data.frame(
  ID = c("24601", "Javert", "Fantine"), 
  fate = c("fulfillment", "confusion", "misfortune"))
expandrows(df, n = 2, type = "each")
expandrows(df, n = 2, type = "times")

nofactors()

class(iris$Species)
str(iris)
out <- nofactors(iris)
class(out$Species)
str(out)

Troubleshooting

You can submit questions, bug reports, and feature requests to the issue tracker. Please take care to search for duplicates first, even among the closed issues.

A cautionary note

Be sure that wildcards and are not also replacement values.

df <- data.frame(x = "a", y = "b")
rules <- list(a = letters[1:3], b = LETTERS[1:3])
wildcard(df, rules = rules)
##   x y
## 1 a A
## 2 a B
## 3 a C
## 4 A A
## 5 B B
## 6 C C
## 7 c A
## 8 c B
##   c C
## Warning message:
## In check_rules(rules) :
##   In `rules`, some wildcards are also replacement values.
## The returned data frame may be different than you expect,
## and it may depend on the order of the wildcards in `rules`.


Try the wildcard package in your browser

Any scripts or data that you put into this service are public.

wildcard documentation built on May 2, 2019, 8:25 a.m.