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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。