Apakah ada cara untuk menyimpan data berbobot sehingga lain kali saya langsung memuatnya? Saya memiliki kumpulan data survei yang besar, dan menggunakan paket survey R. Saya memuat data dengan paket feather, tetapi membutuhkan waktu yang cukup lama ketika saya menerapkan svydesign. Berikut adalah contoh yang dapat direproduksi:

df <- data.frame(col1 = rnorm(20, 0, 1), col2 = rnorm(20, 2, 2), w = rnorm(20, 1, .2))
df.w <- svydesign(id = ~1, data = df, weights = ~w)

Saya ingin menyimpan df.w dan menggunakan ini untuk analisis di masa mendatang. Apakah ada cara?

1
MSD 17 Desember 2017, 17:59

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan saveRDS dan readRDS untuk menyimpan/membaca objek tunggal R seperti ini.

library(survey)

df <- data.frame(col1 = rnorm(20, 0, 1), col2 = rnorm(20, 2, 2), w = rnorm(20, 1, .2))
df.w <- svydesign(id = ~1, data = df, weights = ~w)

####### save to file ##########
storage_file <- tempfile()
#storage_file <- "mydesign.rds"   ## uncomment here to use a local file
saveRDS(df.w, storage_file)

######## clear workspace #########
rm(df, df.w)

######### load the data ###########
df.w.loaded <- readRDS(storage_file)

df.w.loaded
## Independent Sampling design (with replacement)
## svydesign(id = ~1, data = df, weights = ~w)

######## delete storage file ######
file.remove(storage_file)

Jika Anda ingin menyimpan beberapa objek dalam satu file, lihat ?save dan ?load.

3
Gregor de Cillia 17 Desember 2017, 15:15