У меня есть таблица, которая будет иметь переменное количество столбцов на основе моего начального ввода. Есть ли функция для суммирования всех числовых столбцов этой таблицы без указания имени каждого столбца?Как суммировать все числовые столбцы в таблице в SAS?
Прямо сейчас у меня есть имя каждого столбца, жестко закодированное в команде proc sql.
CREATE TABLE &new_table_name AS
(SELECT SUM(CASE WHEN col1 = &state THEN 1 ELSE 0 END) AS month_01,
SUM(CASE WHEN col2 = &state THEN 1 ELSE 0 END) AS month_02,
SUM(CASE WHEN col3 = &state THEN 1 ELSE 0 END) AS month_03,
SUM(CASE WHEN col4 = &state THEN 1 ELSE 0 END) AS month_04,
SUM(CASE WHEN col5 = &state THEN 1 ELSE 0 END) AS month_05
);
ввода образца будет выглядеть так:
name m1 m2 m3 m4
aa 1 7 7 1
ab 2 4 2
ac 1 1
ad 1 3 1 1
ae 2 1 3
Затем выходной образец будет
name m1 m2 m3 m4
7 16 13 2
Если у вас нет имен, вам нужно создать динамический запрос. –
Опубликовать образцы данных, в/из. Интересно, не должно ли это быть транспозиция proc. Ваш код кажется не связанным с указанным вопросом. Вы не можете использовать списки переменных в PROC SQL. – Reeza
Матрица, на которую я пытаюсь сделать сумму, - это набор данных транспонирования. –