Use this to scavenge a data frame for columns that you want to keep. Select
additional columns through .... Do not use this for final column selection;
use dplyr::select() instead.
ys_prune(data, spec, ..., .report = FALSE)A data frame with common columns with spec and ..., in the order they
appear in spec.
An error is generated if there are no columns in common between data and
spec.
data <- ys_help$data()
spec <- ys_help$spec()
data$STUDY <- NULL
head(ys_prune(data, spec))
#> C NUM ID SUBJ TIME SEQ CMT EVID AMT DV AGE WT CRCL ALB BMI
#> 1 NA 1 1 1 0.00 0 1 1 5 0.000 28.03 55.16 114.45 4.4 21.67
#> 2 NA 2 1 1 0.61 1 2 0 NA 61.005 28.03 55.16 114.45 4.4 21.67
#> 3 NA 3 1 1 1.15 1 2 0 NA 90.976 28.03 55.16 114.45 4.4 21.67
#> 4 NA 4 1 1 1.73 1 2 0 NA 122.210 28.03 55.16 114.45 4.4 21.67
#> 5 NA 5 1 1 2.15 1 2 0 NA 126.090 28.03 55.16 114.45 4.4 21.67
#> 6 NA 6 1 1 3.19 1 2 0 NA 84.682 28.03 55.16 114.45 4.4 21.67
#> AAG SCR AST ALT HT CP TAFD TAD LDOS MDV BLQ PHASE RF
#> 1 106.36 1.14 11.88 12.66 159.55 0 0.00 0.00 5 1 0 1 norm
#> 2 106.36 1.14 11.88 12.66 159.55 0 0.61 0.61 5 0 0 1 norm
#> 3 106.36 1.14 11.88 12.66 159.55 0 1.15 1.15 5 0 0 1 norm
#> 4 106.36 1.14 11.88 12.66 159.55 0 1.73 1.73 5 0 0 1 norm
#> 5 106.36 1.14 11.88 12.66 159.55 0 2.15 2.15 5 0 0 1 norm
#> 6 106.36 1.14 11.88 12.66 159.55 0 3.19 3.19 5 0 0 1 norm
head(ys_prune(data, spec, .report = TRUE))
#> Column not found: STUDY
#> C NUM ID SUBJ TIME SEQ CMT EVID AMT DV AGE WT CRCL ALB BMI
#> 1 NA 1 1 1 0.00 0 1 1 5 0.000 28.03 55.16 114.45 4.4 21.67
#> 2 NA 2 1 1 0.61 1 2 0 NA 61.005 28.03 55.16 114.45 4.4 21.67
#> 3 NA 3 1 1 1.15 1 2 0 NA 90.976 28.03 55.16 114.45 4.4 21.67
#> 4 NA 4 1 1 1.73 1 2 0 NA 122.210 28.03 55.16 114.45 4.4 21.67
#> 5 NA 5 1 1 2.15 1 2 0 NA 126.090 28.03 55.16 114.45 4.4 21.67
#> 6 NA 6 1 1 3.19 1 2 0 NA 84.682 28.03 55.16 114.45 4.4 21.67
#> AAG SCR AST ALT HT CP TAFD TAD LDOS MDV BLQ PHASE RF
#> 1 106.36 1.14 11.88 12.66 159.55 0 0.00 0.00 5 1 0 1 norm
#> 2 106.36 1.14 11.88 12.66 159.55 0 0.61 0.61 5 0 0 1 norm
#> 3 106.36 1.14 11.88 12.66 159.55 0 1.15 1.15 5 0 0 1 norm
#> 4 106.36 1.14 11.88 12.66 159.55 0 1.73 1.73 5 0 0 1 norm
#> 5 106.36 1.14 11.88 12.66 159.55 0 2.15 2.15 5 0 0 1 norm
#> 6 106.36 1.14 11.88 12.66 159.55 0 3.19 3.19 5 0 0 1 norm
data$FOO <- 1
data$BAR <- 2
data$YAK <- 3
head(ys_prune(data, spec, YAK, FOO))
#> C NUM ID SUBJ TIME SEQ CMT EVID AMT DV AGE WT CRCL ALB BMI
#> 1 NA 1 1 1 0.00 0 1 1 5 0.000 28.03 55.16 114.45 4.4 21.67
#> 2 NA 2 1 1 0.61 1 2 0 NA 61.005 28.03 55.16 114.45 4.4 21.67
#> 3 NA 3 1 1 1.15 1 2 0 NA 90.976 28.03 55.16 114.45 4.4 21.67
#> 4 NA 4 1 1 1.73 1 2 0 NA 122.210 28.03 55.16 114.45 4.4 21.67
#> 5 NA 5 1 1 2.15 1 2 0 NA 126.090 28.03 55.16 114.45 4.4 21.67
#> 6 NA 6 1 1 3.19 1 2 0 NA 84.682 28.03 55.16 114.45 4.4 21.67
#> AAG SCR AST ALT HT CP TAFD TAD LDOS MDV BLQ PHASE RF YAK FOO
#> 1 106.36 1.14 11.88 12.66 159.55 0 0.00 0.00 5 1 0 1 norm 3 1
#> 2 106.36 1.14 11.88 12.66 159.55 0 0.61 0.61 5 0 0 1 norm 3 1
#> 3 106.36 1.14 11.88 12.66 159.55 0 1.15 1.15 5 0 0 1 norm 3 1
#> 4 106.36 1.14 11.88 12.66 159.55 0 1.73 1.73 5 0 0 1 norm 3 1
#> 5 106.36 1.14 11.88 12.66 159.55 0 2.15 2.15 5 0 0 1 norm 3 1
#> 6 106.36 1.14 11.88 12.66 159.55 0 3.19 3.19 5 0 0 1 norm 3 1
# Use this for final subsetting
# It will fail if all the columns aren't there
data <- ys_help$data()
head(dplyr::select(data, names(spec)))
#> C NUM ID SUBJ TIME SEQ CMT EVID AMT DV AGE WT CRCL ALB BMI
#> 1 NA 1 1 1 0.00 0 1 1 5 0.000 28.03 55.16 114.45 4.4 21.67
#> 2 NA 2 1 1 0.61 1 2 0 NA 61.005 28.03 55.16 114.45 4.4 21.67
#> 3 NA 3 1 1 1.15 1 2 0 NA 90.976 28.03 55.16 114.45 4.4 21.67
#> 4 NA 4 1 1 1.73 1 2 0 NA 122.210 28.03 55.16 114.45 4.4 21.67
#> 5 NA 5 1 1 2.15 1 2 0 NA 126.090 28.03 55.16 114.45 4.4 21.67
#> 6 NA 6 1 1 3.19 1 2 0 NA 84.682 28.03 55.16 114.45 4.4 21.67
#> AAG SCR AST ALT HT CP TAFD TAD LDOS MDV BLQ PHASE STUDY RF
#> 1 106.36 1.14 11.88 12.66 159.55 0 0.00 0.00 5 1 0 1 1 norm
#> 2 106.36 1.14 11.88 12.66 159.55 0 0.61 0.61 5 0 0 1 1 norm
#> 3 106.36 1.14 11.88 12.66 159.55 0 1.15 1.15 5 0 0 1 1 norm
#> 4 106.36 1.14 11.88 12.66 159.55 0 1.73 1.73 5 0 0 1 1 norm
#> 5 106.36 1.14 11.88 12.66 159.55 0 2.15 2.15 5 0 0 1 1 norm
#> 6 106.36 1.14 11.88 12.66 159.55 0 3.19 3.19 5 0 0 1 1 norm