У меня есть набор данных, который похож на то, что я вставил ниже. Что мне нужно сделать, это заполнить все пропущенные значения в столбце группы на основе значений в столбце group_no. Например, если Group_no равен 1, тогда все значения для Group должны быть «Crops».
Я попробовал несколько вещей, совсем недавно оператор CASE WHEN, который, как я думал, сработал, но провалился. Я пробовал if / else, но есть 200 тыс. Записей и 8000 различных групп, и я не уверен, как go об этом, не обновляя каждую запись по одной. Некоторое время я крутил свои колеса с этим, и я думаю, что набор глаз * fre sh мог бы помочь.
Когда я запускаю код ниже, я получаю ошибку
ОШИБКА: подзапрос оценивается более чем в одну строку.
Я делаю это в SAS, используя Pro c SQL, поэтому, если у вас есть более простой подход с использованием шаг данных, тогда это тоже приветствуется.
proc sql;
select
a.ID
, a.Group
, a.Industry
, a.Group_no
,CASE WHEN a.Group IN (' ') THEN (select first(b.group) from mydata as b where first(a.Group_no) = first(b.Group_no)) END AS group_desc2
from mydata as a;
quit;