SAS, безусловно, понимает непрерывные переменные, хотя для них не существует дискретного типа способом r
. SAS имеет числовые и характерные типы (и другие простые типы).
Однако при импорте из Excel SAS не обязательно сделает столбец, что вы думаете, что он должен. В частности, Excel не имеет понятия типа, как SAS; ячейка имеет тип, более или менее, но столбец может иметь все, что вы хотите. Очень часто SAS изменяет числовые символы на символ при импорте, потому что иначе он потеряет некоторые данные.
Как замечает Scortchi в комментариях, есть хорошие шансы, что это данные некоторых символов, такие как «NA» в вашем файле excel. Вы можете изменить это несколькими способами.
Вы можете изменить его после того, как тот факт, например, так:
data have_fixed;
set have(rename=tobacco=tobacco_c);
tobacco=input(tobacco_c,??best12.); *or whatever a reasonable informat is;
run;
??
говорит SAS не будет беспокоиться о тех, которые не преобразовывают аккуратно, просто сделать их не хватает (.
). Если у вас есть какая-либо логика для обработки этого, выполните его (т. Е. Если у вас есть некоторые, которые вы хотите перевести на какое-то другое значение, сделайте это сначала).
Вы также можете указать SAS, как импортировать определенные переменные.
proc import file="c:\myfile.xlsx" out=have dbms=excel replace;
dbsopts="dbsastype=(tobacco='numeric')";
run;
Если у вас есть какие-либо символы, например. «NA», который попал туда, сначала исправьте их, а затем умножьте «табак» на 1. Или найдите подходящий способ сделать это в Stack Overflow. – Scortchi
Умножение символьных переменных на 1 является злым и должно быть наказуемо суровой лекцией от вашего местного гуру SAS. ;) – Joe
Неправильно указан ваш логический запрос proc. Вы можете просмотреть, как выполнить логистическую регрессию, ссылаясь на документацию/примеры SAS или учебник UCLA здесь: http://www.ats.ucla.edu/stat/sas/dae/logit.htm – Reeza