Import 将不带标签和值的SPSS数据导入SAS

Import 将不带标签和值的SPSS数据导入SAS,import,sas,labels,spss,Import,Sas,Labels,Spss,由于我是SAS新手,所以使用“proc import”命令将spss数据导入SAS时遇到困难。我使用的代码是: proc import datafile = "C:\Users\spss.sav" out=work.test dbms = sav replace; run; 主要问题是,当导入sas时,datatable变量具有值而不是编码。例如,如果变量“性别”编码为1=男性2=女性,sas中的每个观察值都有“女性”或“男性” 现在根据这里的说法: 如果在上述代码之后添加以下代码,

由于我是SAS新手,所以使用“proc import”命令将spss数据导入SAS时遇到困难。我使用的代码是:

proc import datafile = "C:\Users\spss.sav"
 out=work.test
 dbms = sav
 replace;
 run;
主要问题是,当导入sas时,datatable变量具有值而不是编码。例如,如果变量“性别”编码为1=男性2=女性,sas中的每个观察值都有“女性”或“男性”

现在根据这里的说法:

如果在上述代码之后添加以下代码,则此问题不再存在:

proc datasets;
modify my_dataset;
format _all_;
quit;

仍然存在的问题是,spss中的变量名在导入sas时没有名称,而是具有spss中指定的标签。是否有任何命令可以保留SAS中变量的名称,而不是SPSS标签?

您可能看到列标签,但基础名称仍然存在。您可以修改
数据集
过程以删除标签和格式。在
过程导入后尝试此操作:

proc datasets library = work;
    modify test;
    attrib _ALL_ label = " " format =;
run;

attrib
语句将空白标签和格式应用于每个变量。

我也遇到了类似的问题。我有一个调查的年度SPSS数据集和相同的格式,称之为“Yearformat”将0=2011,1=2012。。。对于2011年的数据,但是0=2012,1=2013,…,对于2012年的数据,等等。似乎应该有更好的解决方案,但我所做的是。。 SPSS->另存为SAS 9 for windows。。然后单击该选项将格式输出到sas数据集,然后根据需要应用/修改格式。。主要是数据拷贝;设置数据;newyear=put(year,yearformat.)保存适当的年份


但关键是,SPSS将创建一个没有格式的sas数据集,以及一个包含格式和代码的脚本,以应用/修改具有这些格式的数据集。所以你可以控制这个过程。

注意,你的编码实际上就在那里-如果你有q1:1=yes 2=no,你说如果q1=1,那么…
它就可以工作了。值标签(格式)完全是装饰性的(与变量标签相同)。非常有趣。我不知道我仍然可以在语法中使用变量的名称,即使只有变量的标签出现。谢谢你。然而,在我的数据集中,变量的数量超过了1000。因此,不可能记住所有变量的实际名称,而且由于标签太长,在语法中使用它们并不方便。因此,我需要从显示标签“切换”到显示姓名,而不删除标签。谢谢。你的代码完成了这个任务,名字也出现了。但是,通过这种方式,您提到的标签和值将被删除。但是在我的数据集中有1000多个变量,保持变量的名称很重要,这样在编辑器中我可以用一个简短的名称和标签来引用它们,以便能够用解释性描述正确识别每个变量。因此,我正在寻找一个代码,从在SAS中显示标签“切换”到显示名称,而不仅仅是删除标签。在报告中或打开数据集时,您试图在何处进行此更改?不幸的是,这是SAS的默认行为,显示标签而不是名称。打开数据集时,可以通过视图>列名切换到列名而不是标签。如果要查看变量名的引用,标签对可以查看
proc contents data=test;运行。正如Joe所说,标签只是装饰性的,在SAS代码中,您总是通过它的名称来引用变量。Reeza非常感谢您的评论,这正是我最初想要的。