e******e 发帖数: 410 | 1 数据原格式是:
Start Stop Length Format
1044 1055 12 S9(9)V99
下面是一些具体的数据例子:
+00000000000
+00000000000
+00000271750
+00000000000
+00000541500
+00000000000
那么我应该用什么informat来读入这些数值? 麻烦的地方主要是那个leading sign。
多谢多谢 |
p*******r 发帖数: 1951 | 2 从第二列开始读好了。
data t;
input @2 number;
cards;
+00000000000
+00000000000
+00000271750
+00000000000
+00000541500
+00000000000
;
run;
其实直接读也是一样。。。
或者直接按character variable读进来,再去掉加号转成数字。
【在 e******e 的大作中提到】 : 数据原格式是: : Start Stop Length Format : 1044 1055 12 S9(9)V99 : 下面是一些具体的数据例子: : +00000000000 : +00000000000 : +00000271750 : +00000000000 : +00000541500 : +00000000000
|
e******e 发帖数: 410 | 3 两个问题
第一就是前面的sign有可能为负,所以不能直接跳过。‘
第二就是这个数值包括了小数点后的信息。比如说“+00000271750”实际上是2717.50
。
我现在是这样读:
data xxx;
infile xxx;
input
@1044 variable_name 12.2;
run;
就是不是很肯定这个code 100% correct |
e******e 发帖数: 410 | 4 两个问题
第一就是前面的sign有可能为负,所以不能直接跳过。‘
第二就是这个数值包括了小数点后的信息。比如说“+00000271750”实际上是2717.50
。
我现在是这样读:
data xxx;
infile xxx;
input
@1044 variable_name 12.2;
run;
就是不是很肯定这个code 100% correct |
e******e 发帖数: 410 | 5 两个问题
第一就是前面的sign有可能为负,所以不能直接跳过。‘
第二就是这个数值包括了小数点后的信息。比如说“+00000271750”实际上是2717.50
。
我现在是这样读:
data xxx;
infile xxx;
input
@1044 variable_name 12.2;
run;
就是不是很肯定这个code 100% correct |
o*******w 发帖数: 2310 | 6 No, you will produce 0,0,271750....
may use $ to read as character
【在 p*******r 的大作中提到】 : 从第二列开始读好了。 : data t; : input @2 number; : cards; : +00000000000 : +00000000000 : +00000271750 : +00000000000 : +00000541500 : +00000000000
|
p*******r 发帖数: 1951 | 7 明了。
只要这个变量数据长度不变,你这样读应该没问题。
50
【在 e******e 的大作中提到】 : 两个问题 : 第一就是前面的sign有可能为负,所以不能直接跳过。‘ : 第二就是这个数值包括了小数点后的信息。比如说“+00000271750”实际上是2717.50 : 。 : 我现在是这样读: : data xxx; : infile xxx; : input : @1044 variable_name 12.2; : run;
|