# Working with vtools: Flexible Variable Selection

## Søren Højsgaard

    library(doBy)
    library(rlang)
    data(CO2)

## Overview

The `v*` functions in the `doBy` package allow for flexible and consistent handling of variable input. These tools support unquoted names, character vectors, and formulas.

The main functions are:

- `vparse()` – extract variable names from flexible input
- `v()` – shorthand for `vparse()`
- `vselect()` – select columns from a data frame using flexible input
- `vcheck()` – verify that variables exist in a data frame
- `vmap()` – apply a function to each parsed variable name
- `vrename()` – rename variables in a data frame

## Examples

### `vparse()`

    vparse(Treatment, Type)
    vparse(c("Treatment", "Type"))
    vparse(~Treatment + Type)

### `v()` – shorthand for `vparse()`

    v(Treatment, Type)
    v(~Treatment + Type)
    v(c("Treatment", "Type"))

### `vselect()`

    vselect(CO2, Treatment, Type)
    vselect(CO2, ~Treatment + Type)

### `vcheck()`

    vcheck(CO2, Treatment)
    vcheck(CO2, ~Treatment + Type)

### `vmap()`

    vmap(~Treatment + Type, toupper)

### `vrename()`

    vrename(CO2, c(Treatment = "Trt", Type = "Group"))

## Summary

The `v*` tools simplify working with variable names and selection in data frames, making it easier to write functions that accept flexible input formats.