sas - 如何在SAS中将字符变量拆分为多个变量?
问题描述
我想将以下字符变量(有)拆分为多个变量(时间、车道和方向)。
data outdata;
input have & $20.;
datalines;
00:00 Lane 1 (North)
Lane 2 (North)
Lane 3 (South)
Lane 4 (East)
All Lanes
01:00 Lane 1 (North)
;
run;
我得到了除 Lane 变量之外的所有变量。
data up;
set outdata;
Hour=scan(Have, 1);
Hour=compress(hour,'','a');
Lane = scan(Have, 2);
Direction =scan(Have, -1);
Direction = tranwrd(Direction, "Lanes", " ");
run;
解决方案
您可以使用条件保持input
( @
) 来读取和保留该time
值。需要其他input
语句功能,例如调整的分隔符列表 ( dlm=
) 来读取lane
anddirection
值。
例子:
data outdata;
attrib
time format=time5.
lane length=$10
direction length=$5
;
retain time;
input @;
if index(_infile_,':') then input time time5. @;
input lane direction;
infile datalines dlm='()' missover;
datalines;
00:00 Lane 1 (North)
Lane 2 (North)
Lane 3 (South)
Lane 4 (East)
All Lanes
01:00 Lane 1 (North)
;
推荐阅读
- mysql - MySQL - 编写一个 sql 查询来转置获取的记录?
- r - 获取 json 时如何接受 gdpr cookie?
- python - Scipy锯齿波非恒定峰值
- c# - 当没有聚合时,域逻辑应该去哪里?
- c# - 使用linq c#在datagridview中显示特定记录
- c - 如何在 C 中使用 OpenSSL 通过证书的 keyid 获取 EVP_PKEY?
- swift - 为什么在尝试传递数据时 init() 会影响导航链接?
- java - 在 Android 中保存地图的最佳和最快方法是什么?
- html - 如何删除输入范围后面的白色背景?
- python - 计算最终损失之前的样本级别损失计算访问