带列表输入的嵌入空格的字符值
Character value with embedded blanks with list input
我想阅读以下流内数据线
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
我在它读取 AAA 项目到团队变量时使用,但不是 div。我应该如何放置 &
(用于读取带有嵌入空格的字符的符号?)
data scores2;
infile datalines dlm=",";
input name : . score1-score3 team . div $;
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
run;
请注意,我在团队之前也使用了 :
(你已经对其他变量使用了冒号运算符 :
,不知道你为什么错过这里)正如我已经在你的其他查询,使用 :
冒号运算符 (),它会告诉 SAS 使用提供的信息,但在遇到分隔符时停止读取该变量的值。在这里,因为您没有使用此运算符,这就是 SAS 尝试读取 20 个字符的原因,即使
中间有一个分隔符。
测试
data scores2;
infile datalines dlm=",";
input name : .
score1-score3
team : .
div : .;
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
run;
另一种通常更容易阅读的方法是使用 informat
语句。
data scores2;
infile datalines dlm=",";
informat name .
team .
div .;
input name $ score1-score3 team $ div $;
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
run;
这与使用冒号 (input name :.
) 的效果相同,但组织起来更清晰。
需要说明的是,嵌入的空格与逗号分隔的输入无关; '20'x
(即 space)不是定界符时只是另一个字符。 this article 中解决了 & 符号的作用,更具体地说,如果 space
是分隔符,它允许您要求两个连续的分隔符来结束一个字段。示例:
data scores2;
infile datalines dlm=" ";
informat name .
team .
div .;
input name $ score1-score3 team & $ div $;
datalines;
Smith 12 22 46 Green Hornets AAA
FriedmanLi 23 19 25 High Volts AAA
Jones 09 17 54 Las Vegas AA
;
run;
请注意所有团队名称后的双 space - 这是 &
所要求的。但这只是因为分隔符是 space(这是默认的,所以如果你删除了 dlm=' '
,它也将是必需的。)
我想阅读以下流内数据线
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
我在它读取 AAA 项目到团队变量时使用,但不是 div。我应该如何放置 &
(用于读取带有嵌入空格的字符的符号?)
data scores2;
infile datalines dlm=",";
input name : . score1-score3 team . div $;
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
run;
请注意,我在团队之前也使用了 :
(你已经对其他变量使用了冒号运算符 :
,不知道你为什么错过这里)正如我已经在你的其他查询,使用 :
冒号运算符 (
测试
data scores2;
infile datalines dlm=",";
input name : .
score1-score3
team : .
div : .;
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
run;
另一种通常更容易阅读的方法是使用 informat
语句。
data scores2;
infile datalines dlm=",";
informat name .
team .
div .;
input name $ score1-score3 team $ div $;
datalines;
Smith,12,22,46,Green Hornets,AAA
FriedmanLi,23,19,25,High Volts,AAA
Jones,09,17,54,Las Vegas,AA
;
run;
这与使用冒号 (input name :.
) 的效果相同,但组织起来更清晰。
需要说明的是,嵌入的空格与逗号分隔的输入无关; '20'x
(即 space)不是定界符时只是另一个字符。 this article 中解决了 & 符号的作用,更具体地说,如果 space
是分隔符,它允许您要求两个连续的分隔符来结束一个字段。示例:
data scores2;
infile datalines dlm=" ";
informat name .
team .
div .;
input name $ score1-score3 team & $ div $;
datalines;
Smith 12 22 46 Green Hornets AAA
FriedmanLi 23 19 25 High Volts AAA
Jones 09 17 54 Las Vegas AA
;
run;
请注意所有团队名称后的双 space - 这是 &
所要求的。但这只是因为分隔符是 space(这是默认的,所以如果你删除了 dlm=' '
,它也将是必需的。)