sas - (SAS) 如何使用基于 ID 的数据获取日期?
问题描述
我是 SAS 新手,正在尝试编写一个简单的代码。
原始数据:
TableA
ID |Date |Type
1 20111111 A
2 20081014 C
3 20051126 A
...
100 20160421 B
从这个原始数据中,我想按类型获取日期。
喜欢以下
Result (only picking up A and B)
ID | DateofA | DateofB
1 | 20111111 |
2 | |
3 | 20051126 |
...
100 | | 20160421
有人可以这样做吗?
谢谢你的提前。
解决方案
使用 Proc Transpose 有一种简单的方法可以实现这一点。要获取日期,您需要按 Id 对数据集进行排序。然后通过 Id 转置数据集(保持固定)。Id 语句还用于使用 Type 创建列。以下是我使用的方法:
data inp;
input Id 3. Date yymmdd8. type $2.;
type=strip(type);
format date date9.;
datalines;
1 20111111 A
2 20081014 C
3 20051126 A
4 20031212 B
5 20041127 C
6 20010904 A
7 20010803 C
8 20000702 B
9 19990601 A
10 19980701 C
;
run;
proc sort data=inp; by Id; run;
proc transpose data=inp
out=outp
NAME=Transposed_Col
prefix=DATEOf;
by Id;
id type;
run;
推荐阅读
- geocoding - 反向地理定位。加载 api/geocode 我得到 SyntaxError: Unexpected token ':'。解析错误
- python - 二维码在 tkinter GUI python 中显示
- jquery - 先成功后如何运行另一个AJAX
- kubernetes - Kubernetes 如何进行部署以更新映像自动 CI/CD
- mysql - 如何找到彼此喜欢的人?
- r - 如何从特定列中的所有实例中删除“-”?
- environment-variables - 找不到 env 文件
- xamarin.forms - SpecialFolder. 每个设备上的个人访问和位置
- neo4j - 使用导入工具导入文件时找不到 neo4j-admin 命令
- vue.js - vue-router 在商店内不推送