【问题标题】:R show variable list/header of Stata or SAS file in R without loading the complete datasetR在R中显示Stata或SAS文件的变量列表/标题而不加载完整的数据集
【发布时间】:2021-12-24 16:36:49
【问题描述】:

我得到了 SAS 和 Stata 格式的非常大的数据集(每个大约 10 Gb)。我将把它们读入 R 进行分析。

有没有办法在不读取整个数据文件的情况下显示它们包含的变量(列)?我经常只需要一些变量。我当然可以从文件资源管理器中查看它们,但它无法重现并且需要很长时间。

SAS 和 Stata 在系统上都可用,但仅打开一个文件可能需要一分钟左右的时间。

【问题讨论】:

  • 您可以访问 Stata 或 SAS 吗?
  • 是的,两者都可用,但打开文件可能需要一分钟左右。
  • 我只是想知道这是否可能 - 在此期间我正在为每个文件构建查找表。
  • 您可以使用read_dtaread_sas 在第一行(连同列标题)中读取,同时指定n_max = 1 作为选项。两者都包含在haven 包中。
  • 如果你想要一个列标题向量,你可以将你的读取调用包装在names()

标签: r import sas stata preview


【解决方案1】:

如果您有 SAS 运行 proc contents 或 proc datasets 以查看数据集的详细信息而无需打开它。无论如何,您可能都想这样做,以便您可以验证变量类型、长度和格式。

libname myFiles 'path to your sas7bdatfiles';

proc contents data=myfiles.datasetName;
run;

【讨论】:

  • 这是一种解决方案,我想它可以通过 bash 文件从 R 中运行。虽然不是我想要的。谢谢。
  • 您说您的系统上有SAS,验证类型、格式等的最佳方法是在原始系统中查看。
【解决方案2】:

请参阅下面的dta 解决方案,您可以使用read_sas 将其更新为SAS

library(haven)

# read in first row of dta 
dta_head <- read_dta("my_data.dta",
                     n_max = 1)

# get variable names of dta
dta_names <- names(dta_head)

检查dta 文件的名称和标签后,您可以删除n_max = 1 选项并完整读取,同时可能添加col_select 选项以指定您希望读取的变量子集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    相关资源
    最近更新 更多