繁体   English   中英

排序所需的多标签时间序列

[英]multi-label time series needed for sorting

我有一个来自 IMF 的进出口的时间序列数据集。 第一栏为主要国家,第二栏为计数器国家,第三栏为类型(进口或出口),各栏的rest为数值,每栏代表一个月。 我正在尝试转置它,但 3 个解释变量(国家、计数器和类型)很难。 似乎拥有一个多维列/变量 label 会很棒,但我没有发现任何让我认为这是可能的东西。 当然,我可以合并列(即国家反类型),但这使得当我需要按危机国家排序时变得很困难。 任何建议,将不胜感激。 这非常适合 SAS、Python、R 或 Stata。 谢谢你。

编辑:

感谢您的回复。 一个例子是这样的:

国家计数器 国家类型 日期 2001-01 2001-02 2001-03

法国 美国 进口 10 11 12

法国 美国 出口 4 5 6

法国 英国 进口 1 2 3

法国 英国 出口 2 3 4

美国 FR IM 3 4 5

美国 FR EX 5 6 7

美国 英国 IM 4 5 6

美国 英国 EX 5 6 7

英国 FR IM

英国 FR EX

英国 美国 IM

英国美国前

这种情况在 100 多个国家/地区都有很多变量,因此将标签重命名为 US_UK_IM 之类的名称并不理想。 我的想法是,我可以按国家、对应国家或类型进行排序,同时也将数据限制在一个国家(例如美国的金融危机,中国的 2015 年市场事件等),并将这些事件混合在一起进行我的测试. 理想情况下,我可以转置数据集以使其变长并嵌套标签,这样我就可以将数据限制为美国既是国家又是对应国家。

请让我知道这个解释是否有帮助。 谢谢你。

假设您的数据已导入,您可以使用 PROC TRANSPOSE 将其转置为长格式。 然后使用 WHERE 语句过滤 Excel 或 SAS 中的数据。

假设您的变量如图所示这将起作用,您可能需要对其进行修改以匹配您的数据。

  1. 对数据进行排序

  2. 转置以使日期成为数据中的行和包含值的新列

  3. 过滤示例

  4. (可选)导出到 Excel。

     proc sort data=have; by country counter_country Type; run; proc transpose data=have out=long; by country counter_country type; var '2001-01'n -- '2020-12'n; *first and last variables; run; data long; set long; month_report = input(compress(_name_, '-'), yymm6.); format month_report yymmn6.; *then to filter US and counter country is either France/US and for the year 2001; data US_France_2001; set long; where country = 'US' and counter_country in ('France', 'US') and year(month_report) =2001; run;

或导出到 Excel:

proc export data=long outfile='/folders/myfolders/ImportData.xlsx' dbms=xlsx replace;run;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM