gpt4 book ai didi

sas - 如何在SAS中的字符字段中添加前导零?

转载 作者:行者123 更新时间:2023-12-04 17:16:56 26 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

5年前关闭。




Improve this question




我试图弄清楚以下内容:我有 SAS 数据集“ids”,其中包含不同长度的字符变量,例如 idnum3、idnum897 或 idnum2342345。需要创建具有相同长度的每个 ID 并添加前导零以具有诸如“000000idnum3”、“0000idnum897”、idnum2342345 之类的信息。我尝试了很多选择,但似乎没有任何效果。请提出任何建议。谢谢!

最佳答案

两种通用方法在这里很有用。

首先,如果字段完全是数字,则使用 Zw.d 格式。

idnum=put(input(idnum,8.),z8.);

如果它不是完全数字,则使用 repeat() 生成零。使用 length() 找出您需要的数量。 Repeat 有两个参数 - 要重复的字符,以及要添加到原始字符的重复次数。该数字将比直观数字小 1: repeat('0',3) = 0000

所以:
  if length(idnum) lt 8 then idnum = cats(repeat('0',8-1-length(idnum)),idnum);

确保您的 ID 号变量有足够的长度来容纳完整的 ID,否则这将不起作用。

更长的例子:
data have;
input idnum $8.;
datalines;
idn2
idn234
idn23456
;;;;
run;

data want;
set have;
if length(idnum) lt 8 then idnum = cats(repeat('0',8-1-length(idnum)),idnum);
run;

关于sas - 如何在SAS中的字符字段中添加前导零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37398221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com