楼主: 飞奔的小龟
6490 4

[问答] 求助,SAS数据文本型无法转换为数值型 [推广有奖]

  • 0关注
  • 0粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
201 个
通用积分
0.0600
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
235 点
帖子
7
精华
0
在线时间
54 小时
注册时间
2013-9-18
最后登录
2019-10-25

30论坛币
求问各位牛人如何将Retindex数据由字符型转化为数值型,试过各种方法都没有成功,,多谢各位了……

retindex是指数收益率,从CSMAR数据库中导出,为字符型,一般为小数,有正有负

tradeindex.txt (1.68 MB)

我试过的语句如下:
data trdindex;
set trdindex;
Retindex1=input(Retindex,12.);
format Retindex1 best12.;
run;

data trdindex;
set trdindex;
format Retindex best12.;
Retindex1=strip(Retindex);
run;

data trdindex;
set trdindex;
Retindex1=Retindex+0;
run;


最佳答案

jiangpinggu 查看完整内容

输入数据集名应为:Trdindex。 PROC IMPORT OUT= WORK.Trdindex DATAFILE= "C:\Documents and Settings\MyComputer\桌面\tradeindex.txt" DBMS=TAB REPLACE; GETNAMES=YES; DATAROW=2; RUN; data test; set trdindex; if substr(Retindex,1,1)='-' then Retindex1=input(substr(Retindex,1,8),12.); else Retindex1=input(substr(Retindex,1,7),12.); format Retind ...
关键词:数值型 文本型 format Index FORMA 如何
沙发
jiangpinggu 发表于 2014-7-27 23:19:39 |只看作者 |坛友微信交流群
输入数据集名应为:Trdindex。

PROC IMPORT OUT= WORK.Trdindex
            DATAFILE= "C:\Documents and Settings\MyComputer\桌面\tradeindex.txt"
            DBMS=TAB REPLACE;
     GETNAMES=YES;
     DATAROW=2;
RUN;

data test;
set trdindex;
   if substr(Retindex,1,1)='-' then Retindex1=input(substr(Retindex,1,8),12.);
   else Retindex1=input(substr(Retindex,1,7),12.);
   format Retindex1 best12.;
run;

使用道具

藤椅
jiangpinggu 发表于 2014-7-28 00:12:29 |只看作者 |坛友微信交流群
按如下方法:
data test;
   set trdindex;
   if substr(Retindex,1,1)='-' then Retindex1=input(substr(Retindex,1,8),12.);
   else Retindex1=input(substr(Retindex,1,7),12.);
   format Retindex1 best12.;
run;

使用道具

板凳
jiangpinggu 发表于 2014-7-28 00:14:58 |只看作者 |坛友微信交流群
将输入你的文档代码加入:


PROC IMPORT OUT= WORK.trdindex
            DATAFILE= "C:\Documents and Settings\MyComputer\桌面\tradeindex.txt"
            DBMS=TAB REPLACE;
     GETNAMES=YES;
     DATAROW=2;
RUN;


data test;
set trdindex;
  if substr(Retindex,1,1)='-' then Retindex1=input(substr(Retindex,1,8),12.);
  else Retindex1=input(substr(Retindex,1,7),12.);
  format Retindex1 best12.;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
飞奔的小龟 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

报纸
飞奔的小龟 发表于 2014-7-28 08:53:27 |只看作者 |坛友微信交流群
jiangpinggu 发表于 2014-7-28 00:18
输入数据集名应为:Trdindex。

PROC IMPORT OUT= WORK.Trdindex
多谢~这个是因为有负数的原因么,那原来直接转换的方法为什么不行呢

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 13:24