SAS:在数据步骤中从数据行读取字段

SAS:在数据步骤中从数据行读取字段,sas,Sas,请有人在下面的代码中提供有关“:”功能的解释或链接: data voter; infile datalines dsd dlm='~' input age party : $1. (ques1 - Ques4) ($1. + 1); format age 2. party $1. ques1 - ques4 $likert.; label Ques1 = ' performance ' Ques2 = ' taxes ' Ques3 = ' amenitie

请有人在下面的代码中提供有关“:”功能的解释或链接:

data voter; 
infile datalines dsd dlm='~'
input age party : $1. (ques1 - Ques4) ($1. + 1); 

format age 2. party $1. ques1 - ques4 $likert.;
label Ques1 = ' performance '
        Ques2 = ' taxes '
        Ques3 = ' amenities '
        Ques4 = ' endurance ';
datalines;
23~D~2~1~3~4 
34~R~2~1~4~4 
43~D~2~2~1~1 
;
这是用于学习SAS的测试代码。当我从输入语句中删除“:”时,我无法正确读取数据。另外,请告诉我($1.+1)中的+1是什么;上下文此片段摘自通过示例学习SAS。提前谢谢

被调用,这意味着在遇到分隔符时停止读取, 因为它是列表输入法,所以点会向前移动一个单位

(Ques1-Ques4)(1元加1元)


与Ques1$1相同+1件2美元+1个3美元+1张4美元+1,即Ques1中Ques2的增量+1位置,依此类推。

在分配数据步骤中的值时,我可以使用此增量技术吗。e、 g:类似于(分数1-分数10)=(科目1-科目10)(+1);我尝试了这个,但是得到了错误。不,你不能,当在infle语句中使用这个时,你使用的是位置来移动变量,但是在数据集中你没有这样的位置。哦,好的。。谢谢你@NEOmen