R/renameByContents.R
    renameByContents.RdFor instance, lowercase all columns that Nonmem cannot interpret (as numeric).
renameByContents(data, fun.test, fun.rename, invert.test = FALSE, as.fun)data.frame in which to rename columns
Function that returns TRUE for columns to be renamed.
Function that takes the existing column name and returns the new one.
Rename those where FALSE is returned from fun.test.
The default is to return data as a data.frame. Pass a function (say tibble::as_tibble) in as.fun to convert to something else. If data.tables are wanted, use as.fun="data.table". The default can be configured using NMdataConf.
data with (some) new column names. Class as defined by as.fun.
pk <- readRDS(file=system.file("examples/data/xgxr2.rds",package="NMdata"))
pk[,trtact:=NULL]
#> Index: <FLAG>
#>         ROW    ID NOMTIME     TIME  EVID   CMT   AMT       DV  FLAG STUDY   BLQ
#>       <int> <int>   <num>    <num> <int> <int> <int>    <num> <num> <int> <int>
#>    1:     1    31     0.0  0.00000     1     1     3       NA     0     1     0
#>    2:     2    31     0.1  0.13381     0     2     0 0.050000    10     1     1
#>    3:     3    31     0.5  0.48619     0     2     0 0.050000    10     1     1
#>    4:     4    31     1.0  1.00637     0     2     0 0.050000    10     1     1
#>    5:     5    31     2.0  2.02464     0     2     0 0.050000    10     1     1
#>   ---                                                                          
#> 1498:  1498   180     4.0  4.14220     0     2     0 0.614680     0     1     0
#> 1499:  1499   180     8.0  8.16823     0     2     0 0.241030     0     1     0
#> 1500:  1500   180    12.0 12.15164     0     2     0 0.097516     0     1     0
#> 1501:  1501   180    18.0 18.04313     0     2     0 0.080055     0     1     0
#> 1502:  1502   180    23.9 23.87067     0     2     0 0.065688     0     1     0
#>       CYCLE  DOSE  PART PROFDAY PROFTIME WEIGHTB   eff0 EVENTU             NAME
#>       <int> <int> <int>   <int>    <num>   <num>  <num> <char>           <char>
#>    1:     1     3     1       1      0.0  87.031 56.461     mg           Dosing
#>    2:     1     3     1       1      0.1  87.031 56.461  ng/mL PK Concentration
#>    3:     1     3     1       1      0.5  87.031 56.461  ng/mL PK Concentration
#>    4:     1     3     1       1      1.0  87.031 56.461  ng/mL PK Concentration
#>    5:     1     3     1       1      2.0  87.031 56.461  ng/mL PK Concentration
#>   ---                                                                          
#> 1498:     1   300     1       1      4.0  98.103 57.835  ng/mL PK Concentration
#> 1499:     1   300     1       1      8.0  98.103 57.835  ng/mL PK Concentration
#> 1500:     1   300     1       1     12.0  98.103 57.835  ng/mL PK Concentration
#> 1501:     1   300     1       1     18.0  98.103 57.835  ng/mL PK Concentration
#> 1502:     1   300     1       1     23.9  98.103 57.835  ng/mL PK Concentration
#>       TIMEUNIT TRTACT         flag
#>         <char> <char>       <char>
#>    1:    Hours   3 mg       Dosing
#>    2:    Hours   3 mg   Below LLOQ
#>    3:    Hours   3 mg   Below LLOQ
#>    4:    Hours   3 mg   Below LLOQ
#>    5:    Hours   3 mg   Below LLOQ
#>   ---                             
#> 1498:    Hours 300 mg Analysis set
#> 1499:    Hours 300 mg Analysis set
#> 1500:    Hours 300 mg Analysis set
#> 1501:    Hours 300 mg Analysis set
#> 1502:    Hours 300 mg Analysis set
pk <- renameByContents(data=pk,
                       fun.test = NMisNumeric,
                       fun.rename = tolower,
                       invert.test = TRUE)
## Or append a "C" to the same column names
pk <- readRDS(file=system.file("examples/data/xgxr2.rds",package="NMdata"))
pk[,trtact:=NULL]
#> Index: <FLAG>
#>         ROW    ID NOMTIME     TIME  EVID   CMT   AMT       DV  FLAG STUDY   BLQ
#>       <int> <int>   <num>    <num> <int> <int> <int>    <num> <num> <int> <int>
#>    1:     1    31     0.0  0.00000     1     1     3       NA     0     1     0
#>    2:     2    31     0.1  0.13381     0     2     0 0.050000    10     1     1
#>    3:     3    31     0.5  0.48619     0     2     0 0.050000    10     1     1
#>    4:     4    31     1.0  1.00637     0     2     0 0.050000    10     1     1
#>    5:     5    31     2.0  2.02464     0     2     0 0.050000    10     1     1
#>   ---                                                                          
#> 1498:  1498   180     4.0  4.14220     0     2     0 0.614680     0     1     0
#> 1499:  1499   180     8.0  8.16823     0     2     0 0.241030     0     1     0
#> 1500:  1500   180    12.0 12.15164     0     2     0 0.097516     0     1     0
#> 1501:  1501   180    18.0 18.04313     0     2     0 0.080055     0     1     0
#> 1502:  1502   180    23.9 23.87067     0     2     0 0.065688     0     1     0
#>       CYCLE  DOSE  PART PROFDAY PROFTIME WEIGHTB   eff0 EVENTU             NAME
#>       <int> <int> <int>   <int>    <num>   <num>  <num> <char>           <char>
#>    1:     1     3     1       1      0.0  87.031 56.461     mg           Dosing
#>    2:     1     3     1       1      0.1  87.031 56.461  ng/mL PK Concentration
#>    3:     1     3     1       1      0.5  87.031 56.461  ng/mL PK Concentration
#>    4:     1     3     1       1      1.0  87.031 56.461  ng/mL PK Concentration
#>    5:     1     3     1       1      2.0  87.031 56.461  ng/mL PK Concentration
#>   ---                                                                          
#> 1498:     1   300     1       1      4.0  98.103 57.835  ng/mL PK Concentration
#> 1499:     1   300     1       1      8.0  98.103 57.835  ng/mL PK Concentration
#> 1500:     1   300     1       1     12.0  98.103 57.835  ng/mL PK Concentration
#> 1501:     1   300     1       1     18.0  98.103 57.835  ng/mL PK Concentration
#> 1502:     1   300     1       1     23.9  98.103 57.835  ng/mL PK Concentration
#>       TIMEUNIT TRTACT         flag
#>         <char> <char>       <char>
#>    1:    Hours   3 mg       Dosing
#>    2:    Hours   3 mg   Below LLOQ
#>    3:    Hours   3 mg   Below LLOQ
#>    4:    Hours   3 mg   Below LLOQ
#>    5:    Hours   3 mg   Below LLOQ
#>   ---                             
#> 1498:    Hours 300 mg Analysis set
#> 1499:    Hours 300 mg Analysis set
#> 1500:    Hours 300 mg Analysis set
#> 1501:    Hours 300 mg Analysis set
#> 1502:    Hours 300 mg Analysis set
pk <- renameByContents(data=pk,
                       fun.test = NMisNumeric,
                       fun.rename = function(x)paste0(x,"C"),
                       invert.test = TRUE)