This function provides an automated method to extract covariate-like columns. The user decides which columns these variables cannot vary within. So if you have repeated measures for each ID, this function can find the columns that are constant within ID and their unique values for each ID. Or, you can provide a combination of id.cols, say ID and STUDY, and get variables that do not vary within unique combinations of these.
findCovs(data, by = NULL, cols.id, as.fun = NULL)
data.frame in which to look for covariates
covariates will be searched for in combinations of values in these columns. Often by will be either empty or ID. But it can also be both say c("ID","DRUG") or c("ID","TRT").
Deprecated. Use by instead.
The default is to return a data.table if data is a data.table and return a data.frame in all other cases. Pass a function in as.fun to convert to something else. If data is not a data.table, the default can be configured using NMdataConf.
a data set with one observation per combination of values of variables listed in by.
Other DataCreate:
NMorderColumns()
,
NMstamp()
,
NMwriteData()
,
addTAPD()
,
findVars()
,
flagsAssign()
,
flagsCount()
,
mergeCheck()
,
tmpcol()
dt1=data.frame(ID=c(1,1,2,2),
OCC=c(1,2,1,2),
## ID level
eta1=c(1,1,3,3),
## occasion level
eta2=c(1,3,1,5),
## not used
eta3=0
)
## model level
findCovs(dt1)
#> eta3
#> 1 0
## ID level
findCovs(dt1,"ID")
#> ID eta1 eta3
#> 1 1 1 0
#> 2 2 3 0
## acual ID level
findVars(findCovs(dt1,"ID"))
#> ID eta1
#> 1 1 1
#> 2 2 3
## occasion level
findCovs(findVars(dt1,"ID"),c("ID","OCC"))
#> ID OCC eta2
#> 1 1 1 1
#> 2 1 2 3
#> 3 2 1 1
#> 4 2 2 5
## Based on a "real data example"
if (FALSE) { # \dontrun{
dat <- NMscanData(system.file("examples/nonmem/xgxr001.lst", package = "NMdata"))
findCovs(dat,by="ID")
### Without an ID column we get non-varying columns
findCovs(dat)
} # }