我正在运行以下代码,该代码应该为我比较SAS数据集的两列:
PROC SQL;
CREATE TABLE loandata.tv_curve AS
SELECT DISTINCT CONVERT(INT, srp_contract_lifetime) as srp_contract_lifetime, rpa_tv
FROM loandata.sas_f_risk_parameter_cn
WHERE rpa_tv IS NOT NULL
ORDER BY CONVERT(INT, srp_contract_lifetime);
QUIT;
但是,当我运行此代码时,我收到以下错误消息:
ERROR: Function CONVERT could not be located.
ERROR: Function CONVERT could not be located.
ERROR: The following columns were not found in the contributing tables: INT.
如何正确地将我的srp_contract_lifetime变量转换为int?
答案 0 :(得分:1)
CONVERT
是TSQL(Microsoft SQL Server)函数,而不是sas函数。在SAS中,您可以使用input
和put
进行转换。
PROC SQL;
CREATE TABLE loandata.tv_curve AS
SELECT DISTINCT input(srp_contract_lifetime,12.) as srp_contract_lifetime, rpa_tv
FROM loandata.sas_f_risk_parameter_cn
WHERE rpa_tv IS NOT NULL
ORDER BY input(srp_contract_lifetime,12.);
QUIT;
正如戈登所说,这可能甚至不需要,因为SAS只有数字和字符。如果它存储为字符,则仅使用input
;否则将其删除。
答案 1 :(得分:1)
SAS只有数字(浮点)和固定长度的字符串。
如果您的变量是一个数字且它只有整数值,则无需转换。如果要删除小数部分,可以使用INT(),FLOOR(),CIEL()或ROUND()函数,具体取决于您希望如何进行转换。
如果您的变量是字符串,那么您可以使用INPUT()或INPUTN()函数。