Изменить переменную длину в наборе данных SAS - PullRequest
2 голосов
/ 02 декабря 2011

Мне нужно изменить переменную длину в существующем наборе данных.Я могу изменить формат и информацию, но не длину.Я получаю ошибку.В документации сказано, что это возможно, но примеров нет.

Вот моя проблема.Мой источник данных может измениться, поэтому я не хочу предварительно определять столбцы при импорте.Я хочу выполнить общий импорт, а затем поискать определенные столбцы и настроить длину.

Я пробовал шаги PROC SQL и DATA.Похоже, что единственный способ сделать это - воссоздать набор данных или столбец.Что я не хочу делать.

Спасибо, Донни

Ответы [ 3 ]

5 голосов
/ 02 декабря 2011

Если вы поместите свой оператор LENGTH перед оператором SET, на шаге Data вы можете изменить длину переменной.Очевидно, что вы получите усечение, если у вас есть данные длиннее, чем ваша новая длина.

Однако использование шага DATA для изменения длины также приводит к воссозданию набора данных, так что я смущен этой частьюваш вопрос.

1 голос
/ 20 июля 2016

Длина переменной остается неизменной после установки набора данных. Добавьте операторы длины перед тем, как установить набор данных, если вам нужно изменить длину столбцов

data a;
  length a, b, c $200 ;
  set b ;
run ;
1 голос
/ 27 декабря 2011

Единственный способ изменить длину переменной в шаге данных - это определить ее до того, как будет прочитан исходный набор данных (SET).

И наоборот, вы можете использовать оператор alter в процедуре sql. Заявление об изменении поддержки SAS

...