我需要将数据从欧洲社会调查数据库导入SAS。我不太擅长使用 SAS,所以我只是天真地尝试导入一个得到的文本文件,但它把它全部存储在一个变量中。
有人可以帮我做什么吗?由于他们的网页上似乎没有指南,我认为它必须非常简单。
注册是免费的(需要 5 秒),我需要丹麦的所有可能数据。
编辑:当下载他们所谓的 SAS 文件时,我得到的是一个巨大的 proc 格式和与通过选择文本获得的相同的文本文件。文本文件中的数据不是逗号分隔的,第一行不包含变量名。
但是网站说yu可以下载SAS格式,你为什么不呢?
如果所有内容都进入一列,则需要一个分隔符。
data temp;
length ...;
infile 'file.csv' dlm=',';
input ...;
run;
以 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 可能会更容易。
正如 Dirk 所说,该网站说您可以直接下载 SAS 数据集。但是,如果出于某种原因您不想这样做,请选择逗号分隔文件 (CSV) 并使用PROC IMPORT
. 这是一个例子:
proc import out=some_data
datafile='c:\path\somedata.csv'
dbms=csv replace;
getnames=yes;
run;
当然,这假设第一行包含列名。