Subsets a data table by specified filter(s).
datFilter(
x,
xfilter = NULL,
xfiltervar = NULL,
othertabnms = NULL,
uniqueid = "PLT_CN",
vardelete = NULL,
title.filter = NULL,
savedata = FALSE,
filternm = NULL,
stopifnull = FALSE,
returnDT = TRUE,
xnm = NULL,
savedata_opts = NULL,
gui = FALSE
)
Data frame, sf data frame or comma-delimited file (*.csv). A data frame to filter.
String. A filter expression. Must be R syntax. (e.g., "STATUSCD == 1", "INVYR within double quotes (e.g., "SPP == 'Lodgepole'"). If NULL, a window pops up to select filter variable(s) and filter value(s).
String. The filtervar if you know what it is. If NULL, a window will pop up to select filter value(s).
String vector. Name(s) of the objects or comma-delimited files to subset. Names must be in quotes (e.g., othertables=c('tree', 'cond')).
String. Unique identifier of x. Only needed if othertables != NULL. The uniqueid must be the same for all tables except if PLT_CN and CN.
String vector. Vector of variables you would like deleted from filter list. Mostly used for internal queries.
String. Title of the filter query window. Mostuly used for internal queries.
Logical. If TRUE, writes output data to outfolder.
String. Optional. Name of filter, for feedback purposes.
Logical. If TRUE, stop if output is NULL.
Logical. If TRUE, returns a data table. If FALSE, returns a data frame.
String. Name for filter attribute. Used for warning messages.
List. See help(savedata_options()) for a list of options. Only used when savedata = TRUE. If out_layer = NULL, default = 'datf'.
Logical. If TRUE, pop-up windows will appear for user-interface.
A list of the following items:
A data frame of filtered x.
The xfilter.
If othertables != NULL, the other tables, named with 'in' prefix
If no parameters, then user is prompted for input. If partial parameters, default parameter values are used.
If message returned is 'filter removed all records', either the filter removed all records in x or the filter is incorrect.
# Set up data for example
tab <- data.frame(cbind(CONDCLASS=c(1, 1, 2, 1, 3, 3, 3, 1, 1, 1, 2, 1),
FORTYPCD = c(182, 184, 201, 221, 221, 184, 221, 182,
182, 201, 182, 221)))
# Filter for value not equal to 182
datFilter(x = tab, xfilter = "FORTYPCD != 182")
#> FORTYPCD != 182
#> filter removed 4 records: FORTYPCD != 182
#> $xf
#> CONDCLASS FORTYPCD
#> <num> <num>
#> 1: 1 184
#> 2: 2 201
#> 3: 1 221
#> 4: 3 221
#> 5: 3 184
#> 6: 3 221
#> 7: 1 201
#> 8: 1 221
#>
#> $xfilter
#> [1] "FORTYPCD != 182"
#>
# Filter on two conditions, grab xf object from list
datFilter(x = WYcond, xfilter = "FORTYPCD == c(221) & STDSZCD == 3")$xf
#> FORTYPCD == c(221) & STDSZCD == 3
#> filter removed 3221 records: FORTYPCD == c(221) & STDSZCD == 3
#> PLT_CN CONDID COND_NONSAMPLE_REASN_CD CONDPROP_UNADJ SUBPPROP_UNADJ
#> <char> <int> <int> <num> <num>
#> 1: 40405070010690 1 NA 1.00 1.00
#> 2: 40406510010690 1 NA 0.75 0.75
#> 3: 40406890010690 1 NA 1.00 1.00
#> MICRPROP_UNADJ MACRPROP_UNADJ OWNCD OWNGRPCD RESERVCD SITECLCD STDORGCD
#> <num> <lgcl> <int> <int> <int> <int> <int>
#> 1: 1.00 NA 22 20 0 6 0
#> 2: 0.75 NA 46 40 0 6 0
#> 3: 1.00 NA 46 40 0 6 0
#> ADFORCD LIVE_CANOPY_CVR_PCT COND_STATUS_CD NF_COND_STATUS_CD FORTYPCD
#> <int> <int> <int> <int> <int>
#> 1: NA 16 1 NA 221
#> 2: NA 12 1 NA 221
#> 3: NA 20 1 NA 221
#> STDSZCD STDAGE GSSTKCD DSTRBCD1 DSTRBYR1 DSTRBCD2 DSTRBYR2 FORTYPGRPCD
#> <int> <int> <int> <int> <int> <int> <int> <num>
#> 1: 3 47 4 0 NA 0 NA 220
#> 2: 3 12 4 0 NA 0 NA 220
#> 3: 3 30 4 0 NA 0 NA 220
#> TIMBERCD
#> <num>
#> 1: 1
#> 2: 1
#> 3: 1