Instruktion för arkivering av data
1 Förbered dataunderlag för arkivering
Dataunderlaget bör endast inkludera datafiler och variabler som används i projektets analys och för figurer och tabeller som publicerats i rapport/working paper/artikel.
1.1 Dataunderlag enbart från IFAU:s databaser
Dataunderlag som enbart baseras på uppgifter från IFAU:s forskningsdatabaser (IFAU-I, -S, och -U) kan lämnas till arkivet i något av nedanstående format:
- ursprungsformat (Stata, SAS, GAUS, R). Separat postbeskrivning behövs inte (säkerställ att variabler vid behov är dokumenterade med variabeletiketter (labels) eller i programkod).
- textfil med fasta positioner enligt instruktionen under rubrik 1.2 (beskrivningen nedan)
1.2 Dataunderlag inte enbart från IFAU:s databaser
Dataunderlag som inte enbart är hämtade från IFAU:s forskningsdatabaser ska sparas som textfil med fasta positioner. Fasta positioner innebär att det första tecknet i variabel n (n=[1, 2, …, N]) i datasetet finns på samma position i textfilen på samtliga rader. Där variabeln har olika längd på olika rader (observationer) fyller blanksteg ut till variabelns maximala längd. I filen skapas därmed raka kolumner. I filen ska variabler inte avgränsas med t.ex. kommatecken, semikolon eller tabb. Kolumnerna ska heller inte vara förskjutna (notera att även om en tabb-separerad fil kan se ut på detta sätt så är det fortfarande en teckenavgränsad fil där teckenavgränsaren är en tabb). Historiskt har teckenkodningen ASCII krävts. I de flesta program är idag unicode (UTF-8) standard och bättre lämpad för långtidsbevaring.
Via Stat Transfer
Data behandlad i Stata, SAS, GAUSS eller Excel kan föras över till textfil med fasta positioner med hjälp av Stat Transfer.
- Välj det program som har använts i Input file.
- Markera filen som ska överföras med hjälp av browse.
- Välj ASCII - fixed format (S/T Schema) i Output file.
- Välj plats (map/katalog) där ASCII filen ska sparas med hjälp av browse.
I Stat Transfer skapas även en fil med variabellista och positioner automatiskt. Om SAS-data innehåller variabeletiketter (labels) som beskriver innehållet för respektive variabel, så kommer även dessa med i den genererade variabellistan.
Om du har många filer som ska överföras till textfiler med fasta positioner, gör på följande sätt:
- Gå till programmet exe som finns i installationsmappen för StatTransfer, t.ex. C:\Program Files (x86)\StatTransfer8\st.exe
- Sätt sökvägen till mappen med dina datafiler,
ex. cd P:\åååå\nr\data\grunddata - Skriv från vilket format och till vilket format du vill överföra,
ex. copy *.dta *.sts /O-
Tillägget ”/O-” talar om att StatTransfer inte ska använda optimering av datatyper vid överföringen. ”*.sts” ger ASCII - fixed format (S/T Schema).
Via statistik program
Stata
För export av Stata:s dta-filer till textfil med fasta positioner har ett Stata-program tagits fram: dta2fixedpos. Programmet genererar även en postbeskrivningsfil med information om variabler i datasetet, inkl. etiketter (labels) för både variabelbeskrivning och värdeförråd/kodförklaring (om dta-filen innehåller dessa).
Ett program har även tagits fram för import av en textfil som exporterats med dta2fixedpos tillbaka till Statas .dta-format: fixedpos2dta. Import-programmet läser från postbeskrivningsfilen och den bör därför inte redigeras efter export.
Programmen kan installeras direkt i Stata[1] med kommandot:
- net install dta2fixedpos, all from(https://data.ifau.se/static/stata)
Eller (för en beskrivning och därefter installation):
- net from https://data.ifau.se/static/stata
Programmet är dokumenterat i en hjälpfil (help dta2fixedpos). För att exportera en Stata-fil:
- Öppna filen i Stata: use ”P:\åååå\nnn\analysdataset.dta”
- Kör kommandot: dta2fixedpos, saveas(”P:\åååå\nnn\analysdataset.raw”)
Programmet optimerar visningsformat per datatyp för att undvika förlust av information, t.ex. exporteras datumvariabler som text enligt ISO 8601 ("YYYY-mm-dd" för datum och "YYYY-mm-ddThh:mm:ss.sss" för tidsstämplar).
SAS
Ett SAS-makro för export av dataset till textfil med fasta positioner har tagits fram och finns tillgängligt via https://data.ifau.se/static/sas/macro_export_fixed_width_with_desc.sas
En postbeskrivningsfil genereras automatiskt.
/* macro export_fixed_width_with_desc() kräver följande parameterar:
- data: dataset som ska exporteras (libname.dataset, e.g. work.analysdata)
- outtxt: sökväg och filnamn för export av data till textfil
- outdesc: sökväg och filnamn för den generarade postbeskrivningsfilen
*/
%export_fixed_width_with_desc(
data=work.analysdata,
outtxt=P:\åååå\nn\data\analysdata.txt,
outdesc= P:\åååå\nn\data\postbeskr_analysdata.txt
);
R
En R-funktion för export av dataset till textfil med fasta positioner har tagits fram och finns tillgängligt via
- # install.packages("devtools")
- devtools::install_github("adrianadermon/writefwf")
- library(writefwf)
- write_fwf(analysdata, "P:/åååå/nn/analysdata")
En postbeskrivningsfil genereras automatiskt.
Python
En Python-funktion för export av dataset till textfil med fasta positioner har tagits fram och finns tillgängligt via https://data.ifau.se/static/python/func_export_fixed_width_with_desc.py.
En postbeskrivningsfil genereras automatiskt.
/* funktionen export_fixed_width_with_desc() kräver följande parameterar:
- df: namn på dataset/data frame som ska exporteras (funktionen
förväntar sig en pandas dataframe)
- outtxt: sökväg och filnamn för export av data till textfil
- outdesc: sökväg och filnamn för den generarade postbeskrivningsfilen
*/
export_fixed_width_with_desc(
df=analysdata,
outtxt=“P:/åååå/nn/data/analysdata.txt”,
outdesc=“ P:/åååå/nn/data/postbeskr_analysdata.txt”
)
GAUSS
indata = ”namn på datafil” ;
open f1 = ^inddata;
X= readr(f1,rowsf(f1));
output file = ut.txt reset;
X;
Output off;
Postbeskrivning
Skapa även en postbeskrivningsfil (text med radbrytning) med namnet postbeskr.txt.
(Genereras automatiskt om du exporterat från Stata med hjälp av dta2fixedpos, från SAS med makrot export_fixed_width_with_desc(), från R med write_fwf() eller från Python med funktionen export_fixed_width_with_desc(), se ovan för instruktioner för respektive program.)
Filen ska innehålla variabelnamn, variabeltyp (numerisk, text, datum etc.), startposition för varje variabel och exakt kolumnlängd samt en beskrivning av variabelinnehåll och annan eventuell information som är av vikt för att förklara innehållet i datafilen.
2 Dokumentera och lämna dataunderlag för arkivering
OBS! Gäller samtliga dataunderlag
Information
Skapa en textfil, med information om dataunderlagets ursprung (t ex enkäter, Händel, Ams…) och population, med vilket program analysen är gjord och annan förklaring som du anser behövs. Om externa paket/funktioner används, som ej ingår i standardinstallation av programmet, ska dessa listas i informationen. I R kan t.ex. installed.packages()[, c("Package", "Version")] användas och i Python kan pip freeze > requirements.txt användas för att lista installerade paket med versionsinformation.
Spara filen som text med radbrytning, exempelvis i MS-Word
väljer du alternativet ”Oformaterad text”, som filformat. Infoga radbrytning.
OBS! Det går bra att spara postbeskrivning och information i en och samma fil.
Dock ej om export gjorts från Stata med hjälp av programmet dta2fixedpos. Motsvarande importprogram, fixedpos2dta, läser från den postbeskrivningsfil som genereras automatiskt vid export. Postbeskrivningsfilen ska därför inte ändras manuellt efter export. Skapa istället en separat textfil med information om datakällor m.m. om export för arkivering gjorts från Stata med programmet dta2fixedpos.
Program/koder
Lämna programkoder (exempelvis, .do filer i Stata, .sas filer i SAS, .R filer i R. .py i Python och .e eller .sim filer i GAUSS) för arkivering.
Om projektets programkoder måste köras i en särskild ordning bör detta framgå tydligt, antingen i textfilen med information om projektets data m.m. eller med hjälp av en huvudkodfil som dokumenterar projektets programkoder och exekverar dem i korrekt följd.
Filnamn/Katalognamn
Det kan vara en bra idé att ersätta mellanslag med understreck (_) och inte använda tecken som Åå, Ää, Öö.
Överlämnande av data
- Skapa en mapp under
I:\Forskningsprojekt och ärenden\ Dataunderlag för arkivering\ - Döp mappen till ”Dnr_nr_åååå” (exempelvis Dnr_1_2025).
- Spara dataunderlaget i mappen och meddela arkivansvarig.
De som inte har tillgång till I:\, kan
- spara data i projektmappen på P:\ eller, efter samråd med databasadministratör, på annan lämplig plats
- krypterad överföring via S-FTP (kontakta databasadministratör)
[1] Inom IFAU:s samt NEK-UU:s nätverk, vilket inkluderar beräkningsservrarna.