我正在运行以下代码,该代码应该为我比较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?
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
作为字符存储时使用;否则将其删除。
SAS仅具有数字(浮点)和固定长度字符串。
如果您的变量是一个数字,并且仅具有整数值,则没有什么可转换的。如果要删除分数零件,则可以根据要进行转换的方式使用int(),floor(),ciel()或round()功能。
如果您的变量是字符串,则可以使用input()或inputn()函数。