sas - 如何使用前一行 SAS 的值创建字符串
问题描述
我有一张表,其中列出了帐号桶 n 月期间的列表。我需要制作一个如下所示的存储桶字符串..请帮助(基本 SAS)
ACC Bucket Month bucketstring
123 0 jan18 0
123 1 feb18 10
123 2 mar18 210
345 0 feb18 0
345 1 mar18 10
解决方案
该语句用于在步骤retain
期间发生的隐式循环的迭代中维护未设置变量的值。DATA
此示例适用于ACC
最长 15 个月 (0..15) 的组。拥有更多月份的 ACC 将put
在日志中看到一条消息。
data want;
set have;
by ACC;
length bucketstring $20; * bucketstring might have to be made longer;
retain buckstring;
if length (bucketstring) = 20 and not first.ACC then
put 'ERROR: bucketstring has to be longer for the case of ' ACC= month=;
if first.ACC
then bucketstring = cats(month);
else bucketstring = cats(bucketstring,month);
run;
该cats
函数连接项目。这些项目会自动去除前导和尾随空格,并在必要时自动将数字项目转换为字符值。
推荐阅读
- three.js - 修改 OrbitControls 以通过右键单击按住旋转相机,并在按住 alt 时环绕目标的方法
- javascript - 是否可以加快 JavaScript 中大型 JSON 文件的迭代速度?
- glsl - WebGL - 找不到匹配的重载函数
- php - PHP 如果时间是周末 EST 然后 X,否则 Y
- jestjs - 如何用 jest 测试议程作业?
- node.js - 被crontab启动后退出脚本
- javascript - 救援组/Petfinder jQuery API 请求
- python - Pytest 基于 mark.parameterize 值选择测试?
- python - python - 文件夹名称中的空格
- javascript - resx 文件字符串编码错误