Если это - просто простые данные, содержавшиеся в файле Excel, можно считать данные с помощью ADO.NET. См. строки подключения, перечисленные здесь:
http://www.connectionstrings.com/?carrier=excel2007 или http://www.connectionstrings.com/?carrier=excel
Обновление-Ryan
: тогда можно просто прочитать рабочий лист через что-то как select * from [Sheet1$]
Функциональные форматы функций VValue
Переменная передана ему, используя формат, связанный с переменной. Вот код, использующий vValue
:
data test;
format i ddmmyy10.;
i = "10JUN2009"d;
run;
data _null_;
set test;
i_formatted = vvalue(i);
put i_formatted;
run;
, в то время как решение CMJOHNS немного быстрее, чем этот код, этот код проще, потому что нет MACROS.
Я могу сделать это с помощью кода макроса и sashelp.vcolumn
, но это немного неудобно.
proc sql noprint;
select trim(left(format)) into :format
from sashelp.vcolumn
where libname eq 'WORK' and memname eq 'TEST';
run;
data test2;
set test;
i_formatted = put(i, &format);
put i_formatted;
run;
Похоже, это сработало для пары, которую я пробовал. Я использовал VARFMT и макрос-функцию для получения формата данной переменной.
data test;
format i ddmmyy10. b comma12.;
i = "10JUN2009"d;
b = 123405321;
run;
%macro varlabel(variable) ;
%let dsid=%sysfunc(open(&SYSLAST.)) ;
%let varnum=%sysfunc(varnum(&dsid,&variable)) ;
%let fmt=%sysfunc(varfmt(&dsid,&varnum));
%let dsid=%sysfunc(close(&dsid)) ;
&fmt
%mend varlabel;
data test2;
set test;
i_formatted = put(i, %varlabel(i) );
b_formatted = put(b, %varlabel(b) );
put i_formatted=;
put b_formatted=;
run;
Это дало мне:
i_formatted=10/06/2009
b_formatted=123,405,321
Используйте функцию vformat ()
.
/* test data */
data test;
i = "10jun2009"d;
format i ddmmyy10.;
run;
/* print out the value using the associated format */
data _null_;
set test;
i_formatted = putn(i, vformat(i));
put i_formatted=;
run;
/* on log
i_formatted=10/06/2099
*/
Да, есть функция putformatted (). На самом деле, есть два: putc () и putn (). Putc обрабатывает форматы символов, PUTN () числовой. Ваш код должен будет посмотреть на имя формата (все и только форматы символов, начнущие с «$»), определяют, какие для использования. Вот синтаксис PUTC (из интерактивной помощи):
PUTC(source, format.<,w>)
аргументы
source
is the SAS expression to which you want to apply the format.
format.
is an expression that contains the character format you want to apply to source.
w
specifies a width to apply to the format.
Interaction: If you specify a width here, it overrides any width specification
in the format.