如何写入原始数据以在 SAS 中导入
How to write raw data to import in SAS
我想要以下输出,但无法得到。 datalines 和 input options 的原始数据怎么写,不懂。请指教
data dt00;
input Flavor . Quantity : comma.;
datalines;
CHOCOLATE CHIP 10,453
OATMEAL 12,187
PEANUT BUTTER 11,546
SUGAR 12,331
;
proc print data = dt00; run;
* output-----------------------
Flavor Quantity
CHOCOLATE CHIP 10453
OATMEAL 12,187 .
------------------------------;
* I want-----------------------
Flavor Quantity
CHOCOLATE CHIP 10453
OATMEAL 12187
PEANUT BUTTER 11546
SUGAR 12331
------------------------------;
在infile语句中使用delimiter选项使用另一个分隔符,并在Flavor列中添加:
修饰符
data dt00;
infile datalines delimiter = "|";
input Flavor :. Quantity : comma.;
datalines;
CHOCOLATE CHIP|10,453
OATMEAL|12,187
PEANUT BUTTER|11,546
SUGAR|12,331
;
CHOCOLATE CHIP 10453
OATMEAL 12187
PEANUT BUTTER 11546
SUGAR 12331
这里有三个选项。
在变量后面放置两个或更多空格,而不是可以包含空格,并使用 & 输入修饰符。但是您需要确保值的中间没有两个相邻的嵌入空格。还要确保在 INPUT 语句中的任何信息上使用 : 修饰符。
data dt00;
input Flavor &:. Quantity :comma.;
datalines;
CHOCOLATE CHIP 10,453
OATMEAL 12,187
PEANUT BUTTER 11,546
SUGAR 12,331
;
使用不同的分隔符。您需要在 INFILE 语句中设置。再次确保 INPUT 语句中列出的所有信息都使用了 : 修饰符,因此输入仍然是列表模式。
data dt00;
infile datalines dlm='|';
input Flavor :. Quantity :comma.;
datalines;
CHOCOLATE CHIP|10,453
OATMEAL |12,187
PEANUT BUTTER |11,546
SUGAR |12,331
;
使用 DSD 选项,使用您想要的任何分隔符,并引用包含分隔符的值。确保行中每个值之间只有一个分隔符,因为使用 DSD 模式时,相邻的分隔符意味着它们之间有一个空值。
data dt00;
infile datalines dsd dlm=' ';
input Flavor :. Quantity :comma.;
datalines;
"CHOCOLATE CHIP" 10,453
OATMEAL 12,187
"PEANUT BUTTER" 11,546
SUGAR 12,331
;
如果您从程序中写入数据,那么您应该使用 DSD 选项,PUT 语句会自动在需要的地方添加引号。
data _null_;
file csv dsd ;
set dt00;
put flavor quantity;
format quantity comma.;
run;
结果
CHOCOLATE CHIP,"10,453"
OATMEAL,"12,187"
PEANUT BUTTER,"11,546"
SUGAR,"12,331"
我想要以下输出,但无法得到。 datalines 和 input options 的原始数据怎么写,不懂。请指教
data dt00;
input Flavor . Quantity : comma.;
datalines;
CHOCOLATE CHIP 10,453
OATMEAL 12,187
PEANUT BUTTER 11,546
SUGAR 12,331
;
proc print data = dt00; run;
* output-----------------------
Flavor Quantity
CHOCOLATE CHIP 10453
OATMEAL 12,187 .
------------------------------;
* I want-----------------------
Flavor Quantity
CHOCOLATE CHIP 10453
OATMEAL 12187
PEANUT BUTTER 11546
SUGAR 12331
------------------------------;
在infile语句中使用delimiter选项使用另一个分隔符,并在Flavor列中添加:
修饰符
data dt00;
infile datalines delimiter = "|";
input Flavor :. Quantity : comma.;
datalines;
CHOCOLATE CHIP|10,453
OATMEAL|12,187
PEANUT BUTTER|11,546
SUGAR|12,331
;
CHOCOLATE CHIP 10453
OATMEAL 12187
PEANUT BUTTER 11546
SUGAR 12331
这里有三个选项。
在变量后面放置两个或更多空格,而不是可以包含空格,并使用 & 输入修饰符。但是您需要确保值的中间没有两个相邻的嵌入空格。还要确保在 INPUT 语句中的任何信息上使用 : 修饰符。
data dt00;
input Flavor &:. Quantity :comma.;
datalines;
CHOCOLATE CHIP 10,453
OATMEAL 12,187
PEANUT BUTTER 11,546
SUGAR 12,331
;
使用不同的分隔符。您需要在 INFILE 语句中设置。再次确保 INPUT 语句中列出的所有信息都使用了 : 修饰符,因此输入仍然是列表模式。
data dt00;
infile datalines dlm='|';
input Flavor :. Quantity :comma.;
datalines;
CHOCOLATE CHIP|10,453
OATMEAL |12,187
PEANUT BUTTER |11,546
SUGAR |12,331
;
使用 DSD 选项,使用您想要的任何分隔符,并引用包含分隔符的值。确保行中每个值之间只有一个分隔符,因为使用 DSD 模式时,相邻的分隔符意味着它们之间有一个空值。
data dt00;
infile datalines dsd dlm=' ';
input Flavor :. Quantity :comma.;
datalines;
"CHOCOLATE CHIP" 10,453
OATMEAL 12,187
"PEANUT BUTTER" 11,546
SUGAR 12,331
;
如果您从程序中写入数据,那么您应该使用 DSD 选项,PUT 语句会自动在需要的地方添加引号。
data _null_;
file csv dsd ;
set dt00;
put flavor quantity;
format quantity comma.;
run;
结果
CHOCOLATE CHIP,"10,453"
OATMEAL,"12,187"
PEANUT BUTTER,"11,546"
SUGAR,"12,331"