R: Convert each of a vector of strings from SNAKE_CASE to...

snakeToCamel {oce} | R Documentation

## Convert each of a vector of strings from SNAKE_CASE to camelCase

### Description

`snakeToCamel` converts "snake-case" characters such as `"NOVA_SCOTIA"` to "camel-case" values, such as `"NovaScotia"`. It was written for use by `read.argo()`, but it also may prove helpful in other contexts.

### Usage

    snakeToCamel(s, specialCases = NULL)

### Arguments

`s` | A vector of character values.
`specialCases` | A vector of character values that tell which special-cases to apply, or `NULL` (the default) to turn off special cases. The only permitted special case at the moment is `"QC"` (see “Details”) but the idea of this argument is that other cases can be added later, if needed.

### Details

The basic procedure is to chop the string up into substrings separated by the underline character, then to upper-case the first letter of all substrings except the first, and then to paste the substrings together.

However, there are exceptions. First, any upper-case string that contains no underlines is converted to lower case, but any mixed-case string with no underlines is returned as-is (see the second example). Second, if the `specialCases` argument contains `"QC"`, then the `QC` is passed through directly (since it is an acronym) and if the first letter of remaining text is upper-cased (contrast see the four examples).

### Value

A vector of character values

### Author(s)

Dan Kelley

### Examples

    library(oce)
    snakeToCamel("PARAMETER_DATA_MODE")   # "parameterDataMode"
    snakeToCamel("PARAMETER")             # "parameter"
    snakeToCamel("HISTORY_QCTEST")        # "historyQctest"
    snakeToCamel("HISTORY_QCTEST", "QC")  # "historyQCTest"
    snakeToCamel("PROFILE_DOXY_QC")       # "profileDoxyQc"
    snakeToCamel("PROFILE_DOXY_QC", "QC") # "profileDoxyQC"

[Package oce version 1.7-2 Index]