View source: R/labelled_na_foreigndta.R
labelled_na_foreigndta | R Documentation |
Funkcja konweruje ramkę danych zawierającą zmienne etykietowane
(typowo wczytane funkcją read_spss
,
read_dta
, lub zastosuj_codebook
)
do postaci odpowiadającej wynikowi działania funkcji
read.dta
. Tak przetworzoną ramkę danych można potem
w miarę bezproblemowo zapisać do formatu DTA korzystając z funkcji
write.dta
.
labelled_na_foreigndta( x, zachowajWartosciPustymiPoziomami = FALSE, naBrakiDanych = list(. = c("brak odpowiedzi", "odmowa odpowiedzi", "nie dotyczy", "ndt.")), pusteCiagiZnakow = ".", utf8 = TRUE )
x |
ramka danych ze zmiennymi etykietowanymi |
zachowajWartosciPustymiPoziomami |
wartość logiczna: jeśli |
naBrakiDanych |
lista wektorów tekstowych zawierających wartości etykiet,
które mają zostać przekodowane na różne typy braków danych Staty (choć ze
względu na ograniczenia funkcji |
pusteCiagiZnakow |
ciąg znaków, na który zostaną zamienione puste ciągi znaków w zmiennych tekstowych (Stata nie jest w stanie zapisać pustego ciągu znaków jako wartości zmiennej tekstowej) |
utf8 |
wartość logiczna - czy etykiety w wynikowym obiekcie mają być zakodowane w UTF-8? jeśli nie, wykorzystane zostanie domyślne kodowanie aktywnej sesji R (typowo kodowanie systemowe) |
Zapis danych do formatu DTA poprzez funkcję write.dta
został sklepany dosyć siermiężnie i jako etapu pośredniego wymaga konwersji
zmiennych etykietowanych na czynniki. Jeśli wartości, którym
przypisano etykiety nie są ciągiem kolejnych (poczynając od 1) liczb
naturalnych, wiąże się to albo z koniecznością pogodzenia się z tym, że
w zapisanym (tu: przygotowanym do zapisu) zbiorze nie będą zgadzać się z tymi,
jakie występowały w pierwotnym zbiorze, albo brzydko obchodzić ten problem
dodając puste etykiety wartości jako wypełniacz. O tym, które
rozwiązanie funkcja (stara się) zastosować decyduje wartość argumentu
zachowajWartosciPustymiPoziomami
.
Nawet jeśli argument zachowajWartosciPustymiPoziomami=TRUE
, dodatkowe
puste poziomy zostaną utworzone tylko dla zmiennych, których wszystkie
wartości to dodatnie liczby całkowite.
Warto odnotować, że jeśli argument
zachowajWartosciPustymiPoziomami=TRUE
, funkcja będzie czynić zło, tzn.
tworzyć czynniki ze zduplikowanymi wartościami poziomów (co w zasadzie
jest niedozwolone).
Po zapisaniu zbioru funkcją write.dta
(należy pamiętać
o podaniu argumentu convert.factors = "labels"
), warto jeszcze
otworzyć go w Stacie i wydać polecenie compresss
, bo funkcja
write.dta
bardzo hojnie obdziela zmienne
w zbiorze przestrzenią (nie próbuje sprawdzać, czy nie starczyłby
krótszy format).
data.frame ze zmiennymi etykietowanymi przekształconymi na
czynniki i przypisanymi atrybutami analogicznymi do tych, jakie
mają przypisane ramki danych zwracane przez read.dta
## Not run: dane = zastosuj_codebook("plik z danymi.csv", "codebook.csv") daneDoDta = labelled_na_foreigndta(dane) write.dta(daneDoDta, "nazwa pliku.dta", version = 10, convert.factors = "labels") ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.