2015-06-30 2 views
0

Я пытаюсь преобразовать длинный стол в широкую таблицу в SAS. У меня есть следующие данныеПреобразование длинного стола в таблицу sas в SAS

Team ID Player Score 
1  Andy 12 
2  Andy 32 
1  Andy 2 
3  Andy 0 
1  Andy 43 
3   Bin 33 
1  Bin 23 
3  Bin 34 
3   Bin 3 
1   Bin 12 
2  Ray 34 
3  Ray 52 
2  Ray 11 

Теперь я хочу, чтобы добавить счет каждого игрока, как

сообща
Team ID Player Score 
1  Andy 46 
1  Ray  34 
1  Bin  33 
2  Andy 43 
2  Ray 52 
3   Bin 72 
3   Ray 11 

Теперь я хочу tanspose игроков, так что я получаю одну строку для каждой команды, как это.

Team ID Andy Ray Bin 
1  46  34 33 
2  43  52 . 
3   . 11 72 

Я пробовал с proc transpose и proc, но не нашел подходящего решения. Поблагодарите вашу помощь за код sas.

С уважением

+0

Я не Не знаю, что случилось с моими столами! – Philanthrope

+0

Привет, вы можете исправить это форматирование, чтобы облегчить читаемость. Кроме того, вы могли бы поделиться тем, какой код вы пробовали до сих пор? –

+0

Можете ли вы объяснить, как Энди получает 46 очков во второй таблице? –

ответ

0

Это может сработать. Сначала сортировать данные по "Team":

Proc SORT Data=Have Out=Want1; 
by Team; 
Run; 

Затем Транспонирование ваши данные, как переменная будет отсортирован "командой" (по вертикали) "Id Player" (по горизонтали):

PROC TRANSPOSE Data=Want1 Out=Want2 let; 
Id Player; 
By Team; 
Var Score; 
Run; 
Смежные вопросы