replyr_mapRestrictCols: Map names of columns to known values and drop other columns.

Description Usage Arguments Details Value See Also Examples

View source: R/renameRestrictCols.R

Description

Restrict a data item's column names and re-name them in bulk.

Usage

1
replyr_mapRestrictCols(x, nmap, ..., restrict = FALSE, reverse = FALSE)

Arguments

x

data item to work on

nmap

named list mapping with keys specifying new column names, and values as original column names.

...

force later arguments to bind by name

restrict

logical if TRUE restrict to columns mentioned in nmap.

reverse

logical if TRUE apply the inverse of nmap instead of nmap.

Details

Something like replyr::replyr_mapRestrictCols is only useful to get control of a function that is not parameterized (in the sense it has hard-coded column names inside its implementation that don't the match column names in our data).

Value

data item with columns renamed (and possibly restricted).

See Also

let, replyr_reverseMap, replyr_apply_f_mapped

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# an external function with hard-coded column names
DecreaseRankColumnByOne <- function(d) {
  d$RankColumn <- d$RankColumn - 1
  d
}

# our example data, with different column names
d <- data.frame(Sepal_Length=c(5.8,5.7),
                Sepal_Width=c(4.0,4.4),
                Species='setosa',rank=c(1,2))
print(d)


# map our data to expected column names so we can use function
nmap <- c(GroupColumn='Species',
          ValueColumn='Sepal_Length',
          RankColumn='rank')
print(nmap)
dm <- replyr_mapRestrictCols(d,nmap)
print(dm)

# can now apply code that expects hard-coded names.
dm <- DecreaseRankColumnByOne(dm)

# map back to our original column names (for the columns we retained)
# Note: can only map back columns that were retained in first mapping.
replyr_mapRestrictCols(dm, nmap, reverse=TRUE)

WinVector/replyr documentation built on Oct. 22, 2020, 8:07 p.m.