Эмуляция субселектов в R

Oct 29, 2012 19:25

Пусть у вас есть таблица, в которой некое значение (пусть это будет название бейсбольной команды) задано её числовым индификатором:

> head(out.sample[,c("stats_id", "team1_id", "team2_id")])
  stats_id team1_id team2_id
1        1        2        6
2        2        6        2
3        3        5       14
4        4       14        5
5        5        9       16
6        6       16        9

У вас есть другая таблица, которая расшифровывает эти "магические числа":

> head(teams[,c("team_id", "team")])
  team_id         team
1       1      Toronto
2       2   Washington
3       3      Phoenix
4       4 Philadelphia
5       5       Boston
6       6    Cleveland

Как соотнести одно с другим? В R для этого существует весьма удобная функция pmatch:

> out.sample$team1_name <- teams$team[pmatch(out.sample$team1_id, teams$team_id, duplicates.ok=TRUE)]
> out.sample$team2_name <- teams$team[pmatch(out.sample$team2_id, teams$team_id, duplicates.ok=TRUE)]
>
> head(out.sample[,c("stats_id", "team1_id", "team1_name", "team2_id", "team2_name")])
  stats_id team1_id team1_name team2_id team2_name
1        1        2 Washington        6  Cleveland
2        2        6  Cleveland        2 Washington
3        3        5     Boston       14      Miami
4        4       14      Miami        5     Boston
5        5        9     Dallas       16  LA Lakers
6        6       16  LA Lakers        9     Dallas

r project

Previous post Next post
Up