Sas PROC FCMP返回的字符串长度不正确

Sas PROC FCMP返回的字符串长度不正确,sas,Sas,因此,我在SAS中创建了一个函数,但结果输出不会返回输出字符串的完整长度。 可能有什么问题?除了Tom的上述评论外,您还需要声明函数中new_省的长度以及函数的输出长度 proc fcmp outlib=work.func.conversion; function upper_vn(province $) $; length new_province $200; if province in ("TỈNH QuẢNG NINH", "TỈNH QUẢNG

因此,我在SAS中创建了一个函数,但结果输出不会返回输出字符串的完整长度。
可能有什么问题?

除了Tom的上述评论外,您还需要声明函数中new_省的长度以及函数的输出长度

proc fcmp outlib=work.func.conversion;
function upper_vn(province $) $;
length new_province $200; 
    if province in ("TỈNH QuẢNG NINH", "TỈNH QUẢNG NINH") then new_province = "TỈNH QUẢNG NINH";
    if province in ("TỈNH THỪA THIÊN HUẾ","TỈNH THỪA THIÊN-HUẾ","TỈNH THỪA THIÊN-HuẾ") then new_province = "TỈNH THỪA THIÊN HUẾ";
    if province in ("TỈNH TiỀN GIANG","TỈNH TIỀN GIANG") then new_province = "TỈNH TIỀN GIANG";
    else new_province = province;
return (new_province);
endsub;
run; 
options cmplib=(work.func); 

data test; 
length test_string $ 50; 
input test_string & $;
datalines;
"TỈNH THỪA THIÊN-HUẾ"
"TỈNH TIỀN GIANG";
run; 


data output;
set test;
length test_string $ 50;
length newprovince $ 50;
newprovince = upper_vn(test_string );
run;

除了上面Tom的评论之外,您还需要声明函数中new_省的长度以及函数的输出长度

proc fcmp outlib=work.func.conversion;
function upper_vn(province $) $;
length new_province $200; 
    if province in ("TỈNH QuẢNG NINH", "TỈNH QUẢNG NINH") then new_province = "TỈNH QUẢNG NINH";
    if province in ("TỈNH THỪA THIÊN HUẾ","TỈNH THỪA THIÊN-HUẾ","TỈNH THỪA THIÊN-HuẾ") then new_province = "TỈNH THỪA THIÊN HUẾ";
    if province in ("TỈNH TiỀN GIANG","TỈNH TIỀN GIANG") then new_province = "TỈNH TIỀN GIANG";
    else new_province = province;
return (new_province);
endsub;
run; 
options cmplib=(work.func); 

data test; 
length test_string $ 50; 
input test_string & $;
datalines;
"TỈNH THỪA THIÊN-HUẾ"
"TỈNH TIỀN GIANG";
run; 


data output;
set test;
length test_string $ 50;
length newprovince $ 50;
newprovince = upper_vn(test_string );
run;

您调用的函数与您定义的不同。谢谢Tom,我有多傻。代码已编辑。您调用的函数与您定义的不同。谢谢Tom,我有多傻。代码已编辑