
[英]Splitting a SAS dataset into multiple datasets, according to value of one variable
[英]SAS: How to vertically join multiple datasets where a variable is numeric in one dataset and character in the other
这有点复杂,因为我们使用带有文件列表的管道来编译数据,所以有 50 多个数据集进来。我需要垂直组合很多很多数据集,但是 var2 在一些中是数字,在其他中是字符。 Var1 不重要,所以我们可以删除它,但是当我尝试在数据步骤中删除它时,由于数据类型不同,它会抛出错误。 更多细节如下。
这是我想做的最基本的事情......
数据输入 1; 输入 var1 $ var2 数据线; 一个 1 b 2;
数据输入2; 输入 var1 $ var2 $ 数据线; 一个 1a b 2b;
数据newdd; 设置 in1 in2; 跑步;
是否可以在不更改输入的情况下在“data newdd”步骤中组合这些数据集? 有没有办法在这个数据步骤中以一种仍然让它合并 var1 而不会抛出错误的方式删除 var2? 或者更好的是,我可以在所有情况下都将 var2 作为字符读入吗?
要删除 var2,请使用数据集选项。
data newdd;
set in1(drop=var2) in2(drop=var2);
run;
合并并确保它是相同的:
data newdd;
set in1 (in=t1 rename=var2=_var2) in2(in=t2 );
if t1 then var2 = put(_var2, 8. -l);
run;
长答案——你需要修正你在文件中的阅读方式——全部 50 个来自源代码,以便它们是一致的。 如果您有变量的主列表和类型/长度/格式/信息格式,则可以让 SAS 生成正确的类型/INPUT 语句,至少键入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.