rfacts
has strict system dependencies.
Before you can use rfacts
to simulate trials in R, you
must specify the paths to all these executable files in a CSV file. You
can see an example CSV file at inst/example_paths.csv
in the rfacts
package source.
path <- system.file("example_paths.csv", package = "rfacts")
writeLines(readLines(path))
#> executable_type,facts_version,path,engine_name,param_set,param_type
#> mono,6.2.4,/PATH/TO/mono/mono-5.20.1.19/bin/mono,NA,NA,NA
#> mono,6.2.5,/PATH/TO/mono/mono-5.20.1.19/bin/mono,NA,NA,NA
#> flfll,6.2.4,/PATH/TO/flfll/prd/prior_versions/version_6.2.5/FLFLL.exe,NA,NA,NA
#> flfll,6.2.5,/PATH/TO/flfll/prd/prior_versions/version_6.2.5/FLFLL.exe,NA,NA,NA
#> engine,6.0.0.1,/PATH/TO/facts/engines/contin/6.0.0.1/contin.x,contin,NucleusParameterSet,1
#> engine,6.0.0.1,/PATH/TO/facts/engines/dichot/6.0.0.1/dichot.x,dichot,NucleusParameterSet,2
#> engine,6.0.0.1,/PATH/TO/facts/engines/multep/6.0.0.1/multep.x,multep,MultipleEndpointParameterSet,1
#> engine,6.0.0.1,/PATH/TO/facts/engines/tte/6.0.0.1/tte.x,tte,TTEDesignParameterSet,3
#> engine,6.0.0.1,/PATH/TO/facts/engines/aipf_contin/5.0.0.7/aipf_contin.x,aipf_contin,AIPFParameterSet,1
#> engine,6.0.0.1,/PATH/TO/facts/engines/aipf_dichot/5.0.0.7/aipf_dichot.x,aipf_dichot,AIPFParameterSet,2
#> engine,6.0.0.1,/PATH/TO/facts/engines/aipf_tte/5.0.0.9/aipf_tte.x,aipf_tte,AIPFParameterSet,3
#> engine,6.0.0.1,/PATH/TO/facts/engines/CRM/0.3.8.2/CRM.x,crm,CRMDesignParamSet,0
#> engine,6.2.5,/PATH/TO/facts/engines/contin/6.0.0.4/contin.x,contin,NucleusParameterSet,1
#> engine,6.2.5,/PATH/TO/facts/engines/dichot/6.0.0.4/dichot.x,dichot,NucleusParameterSet,2
#> engine,6.2.5,/PATH/TO/facts/engines/multep/6.0.0.4/multep.x,multep,MultipleEndpointParameterSet,1
#> engine,6.2.5,/PATH/TO/facts/engines/tte/6.0.0.4/tte.x,tte,TTEDesignParameterSet,3
#> engine,6.2.5,/PATH/TO/facts/engines/aipf_contin/6.0.0.4/aipf_contin.x,aipf_contin,AIPFParameterSet,1
#> engine,6.2.5,/PATH/TO/facts/engines/aipf_dichot/6.0.0.4/aipf_dichot.x,aipf_dichot,AIPFParameterSet,2
#> engine,6.2.5,/PATH/TO/facts/engines/aipf_tte/6.0.0.4/aipf_tte.x,aipf_tte,AIPFParameterSet,3
#> engine,6.2.5,/PATH/TO/facts/engines/CRM/6.0.0.4/CRM.x,crm,CRMDesignParamSet,0
#> engine,6.2.5,/PATH/TO/facts/engines/contin/6.0.0.4/contin.x,contin,SDBaseParameterSet,1
#> engine,6.2.5,/PATH/TO/facts/engines/dichot/6.0.0.4/dichot.x,dichot,SDBaseParameterSet,2
executable_type
: Must be “mono”, “flfll”, or “engine”
to denote the general type of the executable.facts_version
: The version of FACTS with which this
executable is compatible.path
: File path to the executable.engine_name
: For engines only. Name of the engine. Must
be one of the engine types in the example CSV file at
system.file("example_paths.csv", package = "rfacts")
.param_set
: For engines only. Parameter set designation
listed in the XML code of FACTS files for that engine.param_type
: For engines only. Parameter type
designation listed in the XML code of FACTS files for that engine.rfacts
to the system dependenciesTo allow rfacts
to find the CSV file above, you must set
the RFACTS_PATHS
environment variable. For a single R
session, you can do this with
Sys.setenv(RFACTS_PATHS = "path/to/file.csv")
. To set
RFACTS_PATHS
permanently for all future sessions, open your
.Renviron
file with usethis::edit_r_environ()
and add a line with RFACTS_PATHS=path/to/file.csv
. Then,
restart R so the changes take effect. Verify that you did this correctly
by checking the value of the environment variable.
Check the system dependency information with
rfacts_paths()
.
library(rfacts)
rfacts_paths()
#> # A tibble: 22 × 6
#> executable_type facts_version path engine_name param_set param_type
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 mono 6.2.4 /PATH/TO/mono… <NA> <NA> <NA>
#> 2 mono 6.2.5 /PATH/TO/mono… <NA> <NA> <NA>
#> 3 flfll 6.2.4 /PATH/TO/flfl… <NA> <NA> <NA>
#> 4 flfll 6.2.5 /PATH/TO/flfl… <NA> <NA> <NA>
#> 5 engine 6.0.0.1 /PATH/TO/fact… contin NucleusP… 1
#> 6 engine 6.0.0.1 /PATH/TO/fact… dichot NucleusP… 2
#> 7 engine 6.0.0.1 /PATH/TO/fact… multep Multiple… 1
#> 8 engine 6.0.0.1 /PATH/TO/fact… tte TTEDesig… 3
#> 9 engine 6.0.0.1 /PATH/TO/fact… aipf_contin AIPFPara… 1
#> 10 engine 6.0.0.1 /PATH/TO/fact… aipf_dichot AIPFPara… 2
#> # ℹ 12 more rows
Use rfacts_sitrep()
to verify that all the executables
exist and are indeed executable. This vignette uses toy paths that do
not actually exist. In your setup, if exists
and
is_executable
are all TRUE
, then your setup is
configured correctly.
rfacts_sitrep()
#> # A tibble: 22 × 5
#> executable_type facts_version exists is_executable path
#> <chr> <chr> <lgl> <lgl> <chr>
#> 1 mono 6.2.4 FALSE FALSE /PATH/TO/mono/mono-5.20.1…
#> 2 mono 6.2.5 FALSE FALSE /PATH/TO/mono/mono-5.20.1…
#> 3 flfll 6.2.4 FALSE FALSE /PATH/TO/flfll/prd/prior_…
#> 4 flfll 6.2.5 FALSE FALSE /PATH/TO/flfll/prd/prior_…
#> 5 engine 6.0.0.1 FALSE FALSE /PATH/TO/facts/engines/co…
#> 6 engine 6.0.0.1 FALSE FALSE /PATH/TO/facts/engines/di…
#> 7 engine 6.0.0.1 FALSE FALSE /PATH/TO/facts/engines/mu…
#> 8 engine 6.0.0.1 FALSE FALSE /PATH/TO/facts/engines/tt…
#> 9 engine 6.0.0.1 FALSE FALSE /PATH/TO/facts/engines/ai…
#> 10 engine 6.0.0.1 FALSE FALSE /PATH/TO/facts/engines/ai…
#> # ℹ 12 more rows
If you change RFACTS_PATHS
, you need to call
reset_rfacts_paths()
or restart R in order for the changes
to take effect.