SAS软件中的转置



只是有一些问题与转置数据在SAS;特别是,这可能是因为年份标题是年份格式2013,2014等,但不知道如何解决它

所以例如——>sampledata设置:

CompanyID  2013  2014  2015  2016  2017  2018  2019  2020  2021
1           5.3   3.4   6.4   7.8   5.4   9.8   2.4   4.2   4.2
2           2.3   ...   ...   ...   ...   ...   ...   ...   ...
proc transpose data=sampledata out=long1;
var 2013-2021;
by CompanyID;
run;

所以基本上SAS似乎无法识别'2013-2021作为变量,建议是什么?谢谢!

如果您不小心将VALIDVARNAME选项设置为ANY,那么您可能拥有像2013这样名称的变量的唯一方式。

在这种情况下,您需要在引用不遵循正常名称规则(仅包含数字,字母或下划线并且不以数字开头)的名称时使用NAME LITERALS。

proc transpose data=sampledata out=long1;
by CompanyID;
var '2013'n-'2021'n;
run;

如果您导入了VALIDVARNAME选项设置为V7的数据,那么这些字符串将被转换为_2013、_2014等名称。在这种情况下使用

var _2013 - _2021 ;

如果数据是从Excel导入的,则变量标记将是原始列标头,但变量命名将标头值转换为有效的SAS名称,很可能添加了前导下划线。

下面的代码将基于上述假设工作。

proc transpose data=sampledata out=long1;
var _2013 - _2021;
by CompanyID;
run;

SAS对变量名有一定的规则,但也支持不遵守这些规则的变量。SAS通过一个称为名称字面量的概念来处理这些。名称字面量采用'variable'n的形式。在您的例子中,您只需要指定名称字面量。

proc transpose data=sampledata out=long1;
var '2013'n-'2021'n;
by CompanyID;
run;

相关内容

  • 没有找到相关文章

最新更新