gpt4 book ai didi

sas - 防止 SAS 自动删除字符串中的尾随空白

转载 作者:行者123 更新时间:2023-12-01 11:12:52 25 4
gpt4 key购买 nike

我有如下示例数据集。

data d01;
infile datalines dlm='#';
input Name & $15. IdNumber & $4. Salary & $5. Site & $3.;
datalines;
アイ# 2355# 21163# BR1
アイウエオ# 5889# 20976# BR1
カキクケ# 3878# 19571# BR2
;

data _null_ ;
set d01 ;
file "/folders/myfolders/test.csv" lrecl=1000 ;
length filler $3;
filler = ' ';
w_out = ksubstr(Name, 1, 5) || IdNumber || Salary || Site || filler;
put w_out;
run ;

我想将此数据集导出为 csv(固定宽度格式),每行的长度为 20 字节(20 个 1 字节字符)。

enter image description here

但 SAS 会自动删除我的尾随空格。所以结果将是每行 17 个字节。 (填充被截断)

我知道我可以像这样插入填充物。

put w_out filler $3.;

但是如果“site”列为空,这将不起作用,SAS 将截断它的列并且结果也不是每行 20 个字节。

最佳答案

我不太明白你想用 ksubstr 做什么,但如果你想添加填充以使总长度达到 20 个字符,你可能需要编写一些额外的逻辑:

data _null_ ;
set d01 ;
file "/folders/myfolders/test.csv" lrecl=1000 ;
length filler $20;
w_out = ksubstr(Name,1,5) || IdNumber || Salary || Site;

len = 20 - klength(w_out) - 1;
put w_out @;
if len > 0 then do;
filler = repeat(" ", len);
put filler $varying20. len;
end;
else put;
run ;

关于sas - 防止 SAS 自动删除字符串中的尾随空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503783/

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