2

我需要将数据从欧洲社会调查数据库导入SAS。我不太擅长使用 SAS,所以我只是天真地尝试导入一个得到的文本文件,但它把它全部存储在一个变量中。

有人可以帮我做什么吗?由于他们的网页上似乎没有指南,我认为它必须非常简单。

注册是免费的(需要 5 秒),我需要丹麦的所有可能数据。

编辑:当下载他们所谓的 SAS 文件时,我得到的是一个巨大的 proc 格式和与通过选择文本获得的相同的文本文件。文本文件中的数据不是逗号分隔的,第一行不包含变量名。

4

3 回答 3

3

但是网站说yu可以下载SAS格式,你为什么不呢?

如果所有内容都进入一列,则需要一个分隔符。

data temp;
length ...;
infile 'file.csv' dlm=',';
input ...;
run;
于 2012-09-15T15:38:49.313 回答
3

以 SAS 格式下载。将文本文件保存在您可以记住的位置,然后打开 SAS 文件。这不仅仅是一种大的 proc 格式;这是一个大的 proc 格式,后跟一个带有输入代码的数据步。它可能是由 SPSS 创建的(无论如何它都符合 SPSS 保存的 .sas 文件的模式)。寻找:

DATA  OUT.ESS1_4e01_0_F1;

或类似的东西(这就是我下载它时的样子)。它可能大约是页面下方的 3/4。您只需要更改代码:

INFILE 'ESS1_4e01_0_F1.txt';

或类似的,作为您放置文本文件的目录。为 OUT 创建一个 LIBNAME,将其转到您要永久保存的任何位置,并在 .sas 文件的开头执行此操作,像这样替换前 3 行。

起初:

LIBNAME LIBRARY '';
LIBNAME OUT '';
PROC FORMAT LIBRARY=LIBRARY ;

将这些更改为:

libname out "c:\mystuff\"; *but probably not c:\mystuff :);
options fmtsearch=(out);
proc format lib=out;

然后运行整个事情。

如果您想要格式化的值(值标签)和变量标签,这是最好的解决方案。如果您不关心这一点,那么像 Bob 展示的那样处理 CSV 可能会更容易。

于 2012-09-16T11:32:58.650 回答
1

正如 Dirk 所说,该网站说您可以直接下载 SAS 数据集。但是,如果出于某种原因您不想这样做,请选择逗号分隔文件 (CSV) 并使用PROC IMPORT. 这是一个例子:

proc import out=some_data
     datafile='c:\path\somedata.csv'
     dbms=csv replace;
     getnames=yes;
run;

当然,这假设第一行包含列名。

于 2012-09-15T15:49:19.917 回答