5

我正在使用包 Haven 从 R 编写 SPSS .sav 文件,这对我来说总体上非常有效。但是我注意到使用 write_sav() 写入磁盘的 .sav 文件大小似乎比必要的要大得多。每当我在 SPSS 中打开并保存由 write_sav() 写入的 .sav 文件时,文件大小最多会减少 10 倍!

这对我来说很重要,因为我正在为其他人向 SPSS 写入相当大的数据,有时 SPSS 拒绝打开一个非常大的文件。如果 write_sav() 以“真正的”本机 SPSS 方式更有效地存储,也许不会出现这个问题?

有谁知道这个问题,也许有一个有用的评论?需要安装 SPSS 才能复制此问题

4

4 回答 4

0

您的实际数据采用什么形式?是代码页或 Unicode;和避风港在做什么?自 SPSS 16.0 和 UNICODE 设置的引入以来,从代码页转换为 Unicode 时,字符串字段宽度增加了三倍。这种痛苦最好只受一次。将您的数据转换为 unicode,然后留在那里。

有关更多信息,请参阅https://www.ibm.com/support/knowledgecenter/SSLVMB_26.0.0/statistics_reference_project_ddita/spss/base/syn_set_unicode.html

于 2019-11-13T20:39:00.660 回答
0

SPSS (.sav) 文件格式有三种变体:

  1. 未压缩 (.sav)。这是 Haven 的默认输出,但在我的经验中很少使用。
  2. 压缩 (.sav)。这是大多数人使用的,多年来它一直是 SPSS 的默认保存格式。
  3. Zcompressed(.zsav,但有时是 .sav)。几年前添加到 SPSS,但似乎用处不大。您可以通过添加compress=TRUEwrite_spss()

我已提交拉取请求以将压缩 (2) 格式设为默认格式。

于 2020-09-06T23:15:56.743 回答
0

从 Haven write_sav() 文档中并不清楚,但听起来它正在将它们保存为未压缩的 .sav 文件。(大多数)SPSS 安装的默认设置是保存为压缩文件。SPSS 有一个额外的压缩选项“zCompressed”,它会生成更小的文件,但这些文件通常无法在 SPSS 之外打开。

您可以像这样进行实验;

Save outfile = 'Uncompressed file.sav'
    /UnCompressed.
Save outfile = 'Compressed file.sav'
    /Compressed.
Save outfile = 'ZCompressed file.zsav'
    /ZCompressed.

请注意,.zsav 文件扩展名不是必需的(可以是 .sav),但最好使用它来明确可能存在兼容性问题的地方。

有关更多信息,请参阅https://www.ibm.com/support/knowledgecenter/en/SSLVMB_21.0.0/com.ibm.spss.statistics.help/syn_save_compressed_uncompressed.htm

于 2017-12-11T12:00:10.037 回答
0

如果输出大小有问题,你可以看看我的 package readspss。使用压缩和 zsav 您应该能够获得最佳的可用压缩。sav 文件中的压缩取决于文件的写入方式。SPSS 有不同的压缩方法来存储数字信息。数字只能存储为双精度数(无压缩)或双精度数和 int8_t 的混合(压缩 1)。Zsav 使用 zlib 来压缩任何初始输入(压缩 2)。八个整数的大小为双精度数,因此文件大小不同。

于 2019-11-13T23:19:06.563 回答