Гость
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / SAS объединение 2 таблиц. / 12 сообщений из 12, страница 1 из 1
21.05.2014, 02:38
    #38647122
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Добрый день. Столкнулся с проблемой, есть 10 датасетов с посчитанными данными (формат колонок: имя - char, значения - num).
Но мне необходимо все эти данные вывести в файл *.txt с шапкой и колонтитулом. Единственный вариант, который нашел

proc export data=t1
outfile="/t1.txt"
dbms=TAB;
REPLACE;
run;


Но не могу объединить все таблицы в одну, т.к. в шапке все колонки в формате char.

Пробовал перевести цифру в символы

data t1 (drop = n);
set t1;
n1 = put(n,comma8.2);
run;


но к сожалению у меня каждая строка имеет свой формат, а при переводе в символы вся колонка автоматически трансформируется в один формат.
Пример:
Duration of MS (years)
N xx
Mean xx.x
SD xx.xx
Median xx.x
Min xx
Max xx

Duration of MS (years): N(%)
<1 xx (xxx.x%)
>=1-<=5 xx (xxx.x%)
5>-<=10 xx (xxx.x%)
10>-<=15 xx (xxx.x%)
>15 xx (xxx.x%)


Может есть и другие способы сохранить в текстовый файл несколько датасетов.

P.S. Заранее благодарен.
...
Рейтинг: 0 / 0
22.05.2014, 02:57
    #38648271
pentaho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Evgeniy78,

попробуйте через оператор FILE:

Код: plsql
1.
2.
3.
4.
5.
data _null_;
  file "C:\t.txt";
  set t1 t2 ... t10;
  put name  value;
run;
...
Рейтинг: 0 / 0
23.05.2014, 12:46
    #38650127
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Большое спасибо за ответ, частично помог.
Но если мне надо вывести из:

proc print data=tit5 noobs NOHEADER;
run;

proc report data=a4 nowd headline out=a5 (drop=_BREAK_) ls=120 ps=40 formchar (2) = '_' ;
.........


Нашел вариант:

ods rtf file="text_trad.rtf" ;
.....................
ods rtf close;


но у него 2 недостатка:
1) Выводит в rtf, html, pdf а мне надо txt
2) При выводе в rtf у меня ширина всех колонок 1 символ, а настройку ширины колонок не найду, мне бы что бы брало из программы по умолчанию.
...
Рейтинг: 0 / 0
23.05.2014, 13:02
    #38650170
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Еще забыл упомянуть. Если возможность разбивать на листы по блокам и выводить верхний и нижниЙ колонтитулы?
...
Рейтинг: 0 / 0
24.05.2014, 17:09
    #38650974
pentaho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Evgeniy782) При выводе в rtf у меня ширина всех колонок 1 символ, а настройку ширины колонок не найду, мне бы что бы брало из программы по умолчанию.
1 символ? Остальные символы пропадают? Покажите ваш код и снимок экрана.

Evgeniy78Еще забыл упомянуть. Если возможность разбивать на листы по блокам и выводить верхний и нижниЙ колонтитулы?
Многие процедуры поддерживают операторы by и page by.
Заголовок - оператор title, колонтитул - footnote.

Покажите пример ваших таблиц и пример текстового файла, который хотите получить - так будет быстрее.
...
Рейтинг: 0 / 0
24.05.2014, 19:19
    #38651029
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
1) Вот снимок вывода в rtf файл http://clip2net.com/s/iaRG1v]
вот снимок, если раздвинуть колонки данные не пропадают http://clip2net.com/s/iaRJ3q]

вот как должно быть выведено в текстовый файл

вот кусок кода

ods rtf file="c:\tab16.rtf" ;

proc report data=tab16 nowd headline out=a5 (drop=_BREAK_) ls=120 ps=40 formchar (2) = '_';
column seqno site pt name presbase studstrt durstud cont;
define seqno / order noprint;
define site / group "Site" width=6;
define pt / group "Sibject" width=12;
define name / order 'Medication: V: Verbatim P: Preferred Term C: ATC Level 3'
width=20;
define presbase / width=11;
define studstrt / width=12;
define durstud / ' Stopped During Trial' width=10;
define cont / ' Continuing At End of Trial' width=12;
title1 'Appendix 16.2.7';
title2 'Concomitant Medications';
title3 'Safety Population';
title4 'TREATMENT SEQUENCE = KEMSTRO/BACLOFEN';
footnote2 'Note: Medications coded with WHO Drug 2004 First Quarter.';
run;

ods rtf close;


2) титул и колонтитул выводятся, но как мне в шапку вставить дату и число страниц не знаю пробовал через

ods escapechar='~';
title1 j=r 'Page ~{thispage} of ~{lastpage}';


но не срабатывает у меня версия 9,2
...
Рейтинг: 0 / 0
24.05.2014, 19:22
    #38651032
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
вот код раздвинутых колонок
...
Рейтинг: 0 / 0
24.05.2014, 19:22
    #38651033
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
...
Рейтинг: 0 / 0
24.05.2014, 19:23
    #38651034
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
не хочет что то вставлять ссылку http://clip2net.com/s/iaRShe
...
Рейтинг: 0 / 0
27.05.2014, 19:29
    #38653819
pentaho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Evgeniy782) титул и колонтитул выводятся, но как мне в шапку вставить дату и число страниц не знаю пробовал через

ods escapechar='~';
title1 j=r 'Page ~{thispage} of ~{lastpage}';


но не срабатывает у меня версия 9,2

Пример вывода по страницам + кол-во страниц + дата:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
data test;
  do page = 1 to 3;
    do value = 1 to 3;
	  output;
    end;
  end;
run;


ods html;

%macro print_by_page;

  %do page = 1 %to 3;
    %put &page;

	title "Page &page of 3. &sysdate";

    proc print data = test(where = (page = &page)) noobs;
    run;

  %end;

%mend;

%print_by_page;

ods html close;



Результат:
...
Рейтинг: 0 / 0
28.05.2014, 14:00
    #38654467
Evgeniy78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Спасибо за ответ, данный вариант работает. Но не подскажите как его вставить в процедуру [b]proc report [/b], что бы там считало страницы и выводило дату в шапке каждой страницы?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
18.03.2016, 20:31
    #39195804
Tanya_Komp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS объединение 2 таблиц.
Евгений, Вы еще здесь? Очень нужна Ваша помощь
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / SAS объединение 2 таблиц. / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]