【发布时间】:2016-04-13 21:49:10
【问题描述】:
我有一个包含 100 列的数据集。每次它都会有一些列的缺失值(整列值缺失)。位置是固定的,所以我无法通过 columnA=ColumnB 指定它们。
我想要做的是用右侧列中的列值替换整个缺失的列值(请参阅测试数据)。谢谢。
DATA have ;
LENGTH make $ 20 ;
INPUT make $ 1-17 a b c d m h u;
CARDS;
AMC Concord 4099 22 . 2 1 . 22
AMC Pacer 4749 17 . 2 1 . 17
Audi 5000 9690 17 . 3 23 . 17
Audi Fox 6295 23 . 1 32 . 23
;
RUN;
DATA want;
LENGTH make $ 20 ;
INPUT make $ 1-17 a b c d m h u;
CARDS;
AMC Concord 4099 22 2 2 1 22 22
AMC Pacer 4749 17 2 2 1 17 17
Audi 5000 9690 17 3 3 23 17 17
Audi Fox 6295 23 1 1 32 23 23;
RUN;
【问题讨论】:
-
“地点是固定的”是什么意思?您是否需要在不知道列名的情况下工作?如果两个或多个连续列有缺失值,你想怎么办?
-
是不是每次有一个缺失值你都想用“下一个”变量的值(下一个是位置/varnum)替换它?所有变量都是数字的,就像你的例子一样?如果是这样,您可以使用数组。但这是一个奇怪的要求。我想不出有两个变量具有完全相同的值是有用的。
-
667489 - 这意味着这一次 col 34 有缺失值,下一次 col 76 有缺失值。如果缺少两个或多个连续列,..我们目前没有遇到这种情况,所以我不知道答案。希望到时候我可以修改这里提供的示例代码。
-
Quentin- 我所有的值都是数字。这是一个奇怪的要求。你是对的。该请求来自业务方面。
标签: design-patterns sas