gpt4 book ai didi

SAS 扫描功能分隔符无法正常工作

转载 作者:行者123 更新时间:2023-12-04 22:33:01 24 4
gpt4 key购买 nike

我遇到了 sas 中扫描函数的问题。

我的数据集包含一个变量,需要拆分成多个变量。

变量的结构如下:

4__J04__1__SCH175__BE__compositeur / arrangeur__compositeur / bewerker__(blank)__1__17__108.03__93.7

我使用这段代码将其拆分为多个变量:

data /*ULB.*/work.smart_BCSS_withNISS_&JJ.&K.;
set work.smart_BCSS_withNISS_&JJ.&K.;
/* Maand splitsen in variablen */
mois=scan(smart,1,"__");
jours=scan(smart,2,"__");
nbjours=scan(smart,3,"__");
refClient=scan(smart,4,"__");
paysPrestation=scan(smart,5,"__");
wordingFR=scan(smart,6,"__");
wordingNL=scan(smart,7,"__");
fonction=scan(smart,8,"__");
ARTISTIQUE2=scan(smart,9,"__");
Art_At_LEAST=scan(smart,10,"__");
totalBrut=scan(smart,11,"__");
totalImposable=scan(smart,12,"__");
run;

大多数情况下这都能完美运行。然而,有时第 4 个变量“refClient”包含一个下划线,如下所示:

4__J04__1__LE_46__BE__compositeur / arrangeur__compositeur / bewerker__(blank)__1__17__108.03__93.7

不知何故,即使分隔符是双下划线,扫描函数也会将这个单下划线检测为分隔符。

关于如何避免这种行为有任何想法吗?

最佳答案

Aurieli 的代码有效,但他们的回答没有解释原因。您对 scan 工作原理的理解不正确。

  1. 如果为scan 指定的定界符中有超过1 个字符,则每个字符都被视为一个定界符。您已指定 _ 两次。如果您指定了 ab,则 ab 都将被视为分隔符,而不是 ab分隔符。
  2. scan 默认情况下将多个连续的定界符视为单个定界符,这就是为什么您的代码将 ___ 都视为定界符的原因。因此,如果您将 ab 指定为分隔符字符串,则默认情况下 baabba 等也将被视为单个分隔符。

关于SAS 扫描功能分隔符无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56885998/

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