全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2597 19
2013-07-03
帮忙看一下下面的code啊,各位同学:

data a;
  input ID $1. year $4. SBP 3. DBP;
  datalines;
   1 1950 130 80
   1 1950 144 75
   1 1951 211 90
   2 1950 77  76
   2 1951 66  66
   3 1952 155 76
   3 1952 154 80
   3 1950 144 42
   3 1951 180 80
   2 1951 166 89
   ;
run;

但是输出地结果是:
The SAS System                                                                                                                                                                                                                   20:13 Tuesday, July 2, 2013   1
Obs    ID    year     SBP    DBP
  1           1      1950    130
  2           1      1950    144
  3           1      1951    211
  4           2      1950     77
  5           2      1951     66
  6           3      1952    155
  7           3      1952    154
  8           3      1950    144
  9           3      1951    180
10           2      1951    166


ID一列是空的,这是为什么呢????那位能帮我解答一下啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-7-3 11:31:42
刚才有试了一下,code改为

data a;
  input ID  year  SBP  DBP;
  datalines;
   1 1950 130 80
   1 1950 144 75
   1 1951 211 90
   2 1950 77  76
   2 1951 66  66
   3 1952 155 76
   3 1952 154 80
   3 1950 144 42
   3 1951 180 80
   2 1951 166 89
   ;
run;

这样就可以得到想要的数据集,可是为什么呢?input后面是可以规定格式的啊????
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-7-3 13:06:54
jolterheadmmtt 发表于 2013-7-3 11:31
刚才有试了一下,code改为

data a;
好像input后面跟的变量只定义个字符型(后加$)和数值型(后什么都不加)
然后通过informat子句定义变量的输入格式
反正我是这么做的,可不可以直接在input后定义格式我也不清楚,你可以查查SAS的文档
明白了记得回我个贴子,我也好学习下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-7-3 13:19:32
playmore 发表于 2013-7-3 13:06
好像input后面跟的变量只定义个字符型(后加$)和数值型(后什么都不加)
然后通过informat子句定义变量 ...
谢谢你啊,又学到了一个知识点
不过input后应该是可以定义长度的,如下code就可以正常运行:
而且我也见过书上的例子,是可以的

data parts;
   input PART_NO  $3.  PARTNAME $ price;
cards;
123 HAMMER 25.00
232 PLIERS 8.50
333 SAW 18.00
432 NAILS .01
587 SCREWS .05
;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-7-3 13:25:56
这主要是Formatted INPUT和List INPUT的区别。
Formatted input中如果format指定了长度的话,那么SAS会读取指定长度,而不关心是不是空格。

data a;
  input var1 $ var2 $5. var3 $5. ;
  put _all_;
  datalines;
aa bbbbb  cc ddd
;
run;

另外: 楼主第一个例子中(  input ID $1. year $4. SBP 3. DBP;)SBP的值会是4位么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-7-3 13:49:48
pobel 发表于 2013-7-3 13:25
这主要是Formatted INPUT和List INPUT的区别。
Formatted input中如果format指定了长度的话,那么SAS会读取 ...
就是说一旦定义了长度,不管数值还是字符,都要写够位数了?
我翻了下我过去写的代码,一般都用了@控制位置,或者dlm=控制分隔符
像lz这样的情况还真是没遇到过
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群