我需要将数据从European Social Survey databank导入SAS。 我不是很擅长使用SAS,所以我只是天真地尝试导入文本文件,但它将所有内容存储在一个变量中。
有人可以帮我做什么吗?由于他们的网页上似乎没有指南,我认为它必须非常简单。
可以免费注册(需要5秒),我需要丹麦的所有可能数据。
编辑:当下载他们称之为SAS文件的内容时,我得到的是一个巨大的proc格式和与选择文本相同的文本文件。 文本文件中的数据不是逗号分隔的,第一行不包含变量名。
答案 0 :(得分:3)
但网站上说yu可以下载SAS格式,为什么不呢?
如果所有内容都进入一列,则需要一个分隔符。
data temp;
length ...;
infile 'file.csv' dlm=',';
input ...;
run;
答案 1 :(得分:3)
以SAS格式下载。将文本文件保存在您可以记住的位置,然后打开SAS文件。它不仅仅是一个大的proc格式;它是一个大的proc格式,后跟一个带输入代码的datastep。它可能是由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;
然后运行整个事情。
如果您需要格式化值(值标签)和变量标签,这是最佳解决方案。如果您不关心这一点,那么像鲍勃演示的那样处理CSV可能更容易。
答案 2 :(得分:1)
正如Dirk所说,该网站说您可以直接下载SAS数据集。但是,如果您不想这样做,请选择逗号分隔文件(CSV)并使用PROC IMPORT
。这是一个例子:
proc import out=some_data
datafile='c:\path\somedata.csv'
dbms=csv replace;
getnames=yes;
run;
当然,这假设第一行包含列名。