将包含年份的行转换为列
为了将数据输入 SAS,需要采用以下格式:
Country Year Indicator_1
Belgium 1900 x1
Belgium 1901 x2
...
Belarus 1901 x1
但是,我的大部分数据采用以下格式:
Country 1900 1901 1902 ... etc
Belgium x1____x2___x3 ...etc
Belarus x1____x2___x3 ...etc
是否有简单的宏或 VBA 脚本可以提供帮助?
In order to input data into SAS it is required to be in the following format:
Country Year Indicator_1
Belgium 1900 x1
Belgium 1901 x2
...
Belarus 1901 x1
However, most of my data comes in the following format:
Country 1900 1901 1902 ... etc
Belgium x1____x2___x3 ...etc
Belarus x1____x2___x3 ...etc
Is there an easy Macro or VBA script that can help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将指示符字符串解析为年份变量,
假设有超过 3 年的数据,您需要调整引用 Y1900-Y1902 的格式和数组。
使宽表变高
使年份变量为数字,而不是字符
视图结果
输出
parse apart the indicator string into year variables
assuming there will be more than 3 years worth of data, you'd need to adjust the format and array referencing Y1900-Y1902.
make wide table tall
make year variable numeric, not character
view results
output
您可以使用联合查询:
如果无法导出查询,您可以使用它来创建表。
You can use a Union query:
You can use this to create a table if it is not possible to export a query.
如果输入的原始数据足够规则,那么可以通过如下简单的数据步骤非常轻松地完成此操作。
If the input raw data are regular enough then this can be done very easily with a simple data step as below.