Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading and using a custom configuration file

I'm currently working on a script which should analyze a dataset based on a 'configuration' file.

The input of this file is for instance:

configuration.txt:

123456, 654321
409,255,265
1

It can contain onther values as well, but they will al be numeric. In the example described above the file should be read in as follows:

timestart <- 123456
timeend <- 654321
exclude <- c(409,255,265)
paid <- 1

The layout of the configuration file is not fixed, but it should contain a starting time (unix) an ending time (unix) an array with numbers to exclude and other fields. In the end it should be constructed from fields a user specifies in a GUI. I don't know which formatting would suit best for that case, but as soon as I have these basics working I don't think that will be a big problem.

But that will make it harder to know which values belong to which variable.

like image 983
Max van der Heijden Avatar asked Jun 15 '12 13:06

Max van der Heijden


People also ask

How do I read a config file in R?

Simply write the config file as a . r file containing code exactly as you wrote it, then source() it. The variables will then be defined in your environment.

How read and write config file in C#?

The easiest way to read/write AppSettings config file there is a special section in reserved which allows you to do exactly that. Simply add an <appsettings> section and add your data as key/value pairs of the form <add key="xxx" value="xxxx" /> . That's all to create a new app. config file with settings in it.


2 Answers

Indeed, as Andrie suggested, using a .r config file is the easiest way to do it. I overlooked that option completely!

Thus, just make a .r file with the variables already in it:

#file:config.R
timestart <- 123456
timeend <- 654321
exclude <- c(409,255,265)
paid <- 1

In other script use:

source("config.R")

And voila. Thank you Andrie!

like image 108
Max van der Heijden Avatar answered Sep 30 '22 01:09

Max van der Heijden


Another alternative would be to use the config package. This allows setting configuration values to be executed according to the running environment (production, test, etc.). All parameters are accessed by a list and are loaded by a YAML text format configuration file.

More details and examples about config can be found here: https://cran.r-project.org/web/packages/config/vignettes/introduction.html

If you wants to load a JSON, TOML, YAML, or INI text configuration file, see also the configr package.

like image 23
Giancarlo Avatar answered Sep 29 '22 23:09

Giancarlo