2012-06-15 13 views
11

Obecnie pracuję nad skryptem, który powinien przeanalizować zestaw danych na podstawie pliku "konfiguracyjnego".Odczytywanie i używanie niestandardowego pliku konfiguracyjnego

Wejście tego pliku jest na przykład:

configuration.txt:

123456, 654321 
409,255,265 
1 

Może zawierać wartości onther również, ale będą in wartości numeryczne. W przykładzie opisanym powyżej, w pliku powinny być interpretowane w następujący sposób:

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

Układ pliku konfiguracji nie jest stała, ale powinna ona zawierać czas startu (UNIX) po czasie zakończenia (UNIX) tablicą liczby do wykluczenia i inne pola. Ostatecznie powinien być zbudowany z pól określonych przez użytkownika w GUI. Nie wiem, które formatowanie najlepiej pasuje do tego przypadku, ale gdy tylko będę miał te podstawowe podstawy, nie sądzę, że będzie to duży problem.

Ale to sprawi, że trudniej będzie wiedzieć, które wartości należą do której zmiennej.

+0

Po prostu zapisz plik konfiguracyjny jako plik '.r' zawierający kod dokładnie tak, jak go napisałeś, następnie' source() 'it. Zmienne zostaną wtedy zdefiniowane w twoim środowisku. – Andrie

+3

Podobne pytanie: http://stackoverflow.com/q/5272846/602276 – Andrie

+0

Jako użytkownik R/web developer, sugeruję JSON. Istnieją pakiety 'rjson' i' RJSONIO' do odpowiedniej (de) serializacji. Ale IMO 'source()' sprawne skrypty R są najlepszym sposobem, jak sugeruje @Andrie. – aL3xa

Odpowiedz

21

Rzeczywiście, jak zasugerowała Andrie, użycie pliku konfiguracyjnego .r jest najłatwiejszym sposobem. Całkowicie przeoczyłem tę opcję!

Tak więc, po prostu zrobić plik .r ze zmiennymi już w nim:

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

W innych zastosowań skryptu:

i voila. Dziękuję Andrie!

+0

+1 To wszystko. Witamy w SO. – Andrie

+0

Ponownie, naprawdę nie myślałem o tym. Mimo że jest bardzo prosty. Nawet do późniejszego wykorzystania z danymi wejściowymi pochodzącymi ze strony internetowej, to nadal może być używane idealnie, jak sądzę. –

+1

To jest ładne, ale idealnie chciałbym załadować ustawienia w oddzielnej przestrzeni nazw, tak że ja nie zanieczyszczają listę zmiennych globalnych. Przypuszczam, że mógłbym zdefiniować własną listę nazwaną w pliku .R ... – Leonid

0

Inną alternatywą byłoby użycie pakietu config. Pozwala to na ustawienie wartości konfiguracyjnych, które mają być wykonane zgodnie ze środowiskiem roboczym (produkcja, test itp.). Wszystkie parametry są dostępne przez listę i są ładowane przez plik konfiguracyjny formatu tekstowego YAML.

Więcej szczegółów na temat konfiguracji i przykłady można znaleźć tutaj: https://cran.r-project.org/web/packages/config/vignettes/introduction.html

Jeśli chce się załadować JSON, TOML, YAML lub plik konfiguracyjny INI tekst, patrz również pakiet configr.

Powiązane problemy