Sas 基于数据步长变量检索列
我在写一份SAS的工作。对于这个SAS工作,我需要执行以下操作--Sas 基于数据步长变量检索列,sas,Sas,我在写一份SAS的工作。对于这个SAS工作,我需要执行以下操作-- 检索字段ActiveColumn的值。此值将是表中另一列的名称 将ActiveValue设置为等于由ActiveColumn命名的字段的值 基本上,我正在尝试写一个版本,在这个版本中,我不需要事先写出每一个列名-- 最简单的方法是什么 多谢各位 这听起来像是垂直转置。如果所有字段都是字符,则可以这样做: data want; set have; array fields city state zip; do _t = 1 to
ActiveColumn
的值。此值将是表中另一列的名称ActiveValue
设置为等于由ActiveColumn
命名的字段的值多谢各位 这听起来像是垂直转置。如果所有字段都是字符,则可以这样做:
data want;
set have;
array fields city state zip;
do _t = 1 to dim(fields);
if lowcase(activeColumn)=vname(fields[_t]) then activeValue=fields[_t];
*may want an OUTPUT here.;
end;
run;
如果它们是混合类型,则需要两个数组和循环。如果您打算循环所有字段,则可能不需要ActiveColumn;您只需在循环中将ActiveColumn设置为vname(字段[\u t])
如果您想让它更灵活,您可以使用数组字段\u character\ux代码>
它将使用所有字符变量(因此,您不必显式指定它们)
data want;
set have;
array fields city state zip;
do _t = 1 to dim(fields);
if lowcase(activeColumn)=vname(fields[_t]) then activeValue=fields[_t];
*may want an OUTPUT here.;
end;
run;