在SAS中将一列拆分为多行可以通过使用数据步骤和数组来实现。以下是一种常见的方法:
data new_data;
set old_data;
array new_col{N} $ new_col1-new_colN; /* N为拆分后的行数 */
run;
data new_data;
set old_data;
array new_col{N} $ new_col1-new_colN;
do i = 1 to N;
new_col{i} = scan(old_col, i, ','); /* old_col为原始列的名称,','为分隔符 */
end;
drop old_col; /* 可选,删除原始列 */
run;
在上述代码中,使用SCAN函数将原始列的值按照指定的分隔符拆分为多个部分,并将每个部分存储到数组的相应元素中。
data new_data;
set old_data;
array new_col{N} $ new_col1-new_colN;
do i = 1 to N;
new_col{i} = scan(old_col, i, ',');
end;
drop old_col;
run;
proc print data=new_data;
run;
这样,原始列就会被拆分为多行,并存储在新的数据集中的数组元素中。
这种方法适用于将一列拆分为已知行数的情况。如果行数不确定,可以使用动态数组或其他方法来处理。另外,如果需要对拆分后的数据进行进一步处理,可以在DO循环中添加相应的代码。
领取专属 10元无门槛券
手把手带您无忧上云