read_sav()
讀取.sav
和.zsav
文件; write_sav()
在 compress = TRUE
時創建 .zsav
文件。 read_por()
讀取.por
文件。 read_spss()
根據文件擴展名使用 read_por()
或 read_sav()
。
用法
read_sav(
file,
encoding = NULL,
user_na = FALSE,
col_select = NULL,
skip = 0,
n_max = Inf,
.name_repair = "unique"
)
read_por(
file,
user_na = FALSE,
col_select = NULL,
skip = 0,
n_max = Inf,
.name_repair = "unique"
)
write_sav(data, path, compress = c("byte", "none", "zsav"), adjust_tz = TRUE)
read_spss(
file,
user_na = FALSE,
col_select = NULL,
skip = 0,
n_max = Inf,
.name_repair = "unique"
)
參數
- file
-
文件路徑、連接或文字數據(單個字符串或原始向量)。
以
.gz
、.bz2
、.xz
或.zip
結尾的文件將自動解壓縮。將自動下載以http://
、https://
、ftp://
或ftps://
開頭的文件。遠程gz文件也可以自動下載並解壓。文字數據對於示例和測試最有用。要被識別為文字數據,輸入必須用
I()
包裝,是包含至少一個換行符的字符串,或者是至少包含一個帶有換行符的字符串的向量。使用值
clipboard()
將從係統剪貼板讀取。 - encoding
-
文件使用的字符編碼。默認值
NULL
使用文件中指定的編碼,但有時該值不正確,能夠覆蓋它會很有用。 - user_na
-
如果缺少用戶定義的
TRUE
變量,將被讀入labelled_spss()
對象。如果FALSE
,則默認的用戶定義缺失將轉換為NA
。 - col_select
-
一個或多個選擇表達式,例如
dplyr::select()
。使用c()
或list()
來使用多個表達式。有關可用選擇選項的詳細信息,請參閱?dplyr::select
。僅從data_file
讀取指定的列。 - skip
-
讀取數據之前要跳過的行數。
- n_max
-
讀取的最大行數。
- .name_repair
-
有問題的列名的處理:
-
"minimal"
:沒有名稱修複或檢查,超出基本存在, -
"unique"
:確保名稱唯一且不為空, -
"check_unique"
:(默認值),沒有名稱修複,但檢查它們是unique
, -
"universal"
:命名為unique
和語法 -
函數:應用自定義名稱修複(例如,
.name_repair = make.names
用於基本 R 樣式的名稱)。 -
purrr-style 匿名函數,請參閱
rlang::as_function()
此參數作為
repair
傳遞到vctrs::vec_as_names()
。有關這些條款以及用於執行這些條款的策略的更多詳細信息,請參閱此處。 -
- data
-
要寫入的數據幀。
- path
-
將寫入數據的文件的路徑。
- compress
-
使用的壓縮類型:
-
"byte":默認,使用字節壓縮。
-
"none":無壓縮。這對於存在字節壓縮
.sav
文件問題的軟件(例如 SAS)非常有用。 -
"zsav":使用 zlib 壓縮並生成
.zsav
文件。 SPSS 21.0 及更高版本支持 zlib 壓縮。
TRUE
和FALSE
可用於向後兼容,分別對應於"zsav"和"none"選項。 -
- adjust_tz
-
Stata、SPSS 和 SAS 沒有時區概念,所有 date-time 變量均被視為 UTC。
adjust_tz
控製寫入時如何處理日期時間值的時區。-
如果
TRUE
(默認),則忽略日期時間值的時區,並且它們將在 R 和 Stata/SPSS/SAS 中顯示相同的內容,例如"2010-01-01 09:00:00 NZDT"
將寫為"2010-01-01 09:00:00"
。請注意,這會更改基礎數值數據,因此如果保留 between-time-point 差異至關重要,請務必小心。 -
如果
FALSE
,日期時間值將寫入相應的 UTC 值,例如"2010-01-01 09:00:00 NZDT"
將寫為"2009-12-31 20:00:00"
。
-
值
一個 tibble DataFrame 變體,具有很好的默認值。
變量標簽存儲在每個變量的"label"屬性中。它不會打印在控製台上,但 RStudio 查看器會顯示它。
write_sav()
以不可見方式返回輸入data
。
細節
目前haven可以讀寫邏輯、整數、數字、字符和因子。請參閱 labelled_spss()
了解如何在 R 中處理 SPSS 中的標記變量。
例子
path <- system.file("examples", "iris.sav", package = "haven")
read_sav(path)
#> # A tibble: 150 × 5
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> <dbl> <dbl> <dbl> <dbl> <dbl+lbl>
#> 1 5.1 3.5 1.4 0.2 1 [setosa]
#> 2 4.9 3 1.4 0.2 1 [setosa]
#> 3 4.7 3.2 1.3 0.2 1 [setosa]
#> 4 4.6 3.1 1.5 0.2 1 [setosa]
#> 5 5 3.6 1.4 0.2 1 [setosa]
#> 6 5.4 3.9 1.7 0.4 1 [setosa]
#> 7 4.6 3.4 1.4 0.3 1 [setosa]
#> 8 5 3.4 1.5 0.2 1 [setosa]
#> 9 4.4 2.9 1.4 0.2 1 [setosa]
#> 10 4.9 3.1 1.5 0.1 1 [setosa]
#> # ℹ 140 more rows
tmp <- tempfile(fileext = ".sav")
write_sav(mtcars, tmp)
read_sav(tmp)
#> # A tibble: 32 × 11
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
相關用法
- R haven read_sas 讀取 SAS 文件
- R haven read_xpt 讀寫 SAS 傳輸文件
- R haven read_dta 讀寫Stata DTA文件
- R haven zap_missing 將特殊缺失修改為常規 R 缺失
- R haven print_labels 打印帶標簽向量的標簽
- R haven tagged_na “標記”缺失值
- R haven zap_label Zap 變量標簽
- R haven labelled 創建一個標記向量。
- R haven as_factor 將標記向量轉換為因子
- R haven zap_empty 將空字符串轉換為缺失值
- R haven labelled_spss SPSS 的標記向量
- R haven zap_labels Zap值標簽
- R SparkR hashCode用法及代碼示例
- R hms hms 用於存儲一天中的時間值的簡單類
- R SparkR hint用法及代碼示例
- R hms parse_hms 解析 hms 值
- R SparkR histogram用法及代碼示例
- R SparkR head用法及代碼示例
- R hms round_hms 四舍五入或截斷為秒的倍數
- R dtrMatrix-class 三角形稠密數值矩陣
- R vcov.gam 從 GAM 擬合中提取參數(估計器)協方差矩陣
- R gam.check 擬合 gam 模型的一些診斷
- R ggplot2 annotation_logticks 注釋:記錄刻度線
- R matrix轉list用法及代碼示例
- R Pixel X 射線像素強度隨時間的變化
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Read and write SPSS files。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。