2017-12-11 26 views
-1

さまざまな選手のトーナメントに番号を付けることができます。基本的なデータセットを以下に示します。私は、あるプレーヤーが参加した各トーナメントに番号を付けて、トーナメントが不足している人たちの説明ができるようにしたい。 Tournament.IDがダウンしたとして条件付ランキングまたはRの条件付番号付け?

Player.ID Tournament.ID 
21633  2018010 
21909  2018010 
21633  2018020 

理想的には、私は最高のTournament.ID値から始めて、それを1の値を与え、その後、カウントアップします。しかし、私はそれが特定のPlayer.IDを数えたいだけです。

私はこれをうまく説明していない可能性がありますが、私は新しいので、あなたの忍耐は高く評価されます。ありがとう!

+0

期待される出力はどのようなものでしょうか?あなたは2つの 'Player.ID == 21633'を持っていますが、異なる' Tournament.ID'の値を持っています。どのように数えますか? –

+0

Player.ID == 21633の最高値の場合、値は1、次の最高値は2などです。異なるPlayer.ID番号はすべて理想的にはその形式に従います。 –

+0

わかりません、申し訳ありません。期待される出力の例を提供する必要があります – spinodal

答えて

0
df = unique(data.frame(Player.id=sample(c(1:5),20,replace=TRUE), 
       Tournament.ID=sample(c(1:3),20,replace=TRUE))) 

library(dplyr) 
library(tidyr) 
result <- df %>% arrange(desc(Tournament.ID),Player.id) %>% 
    group_by(Player.id) %>% 
    mutate(Count = dense_rank(desc(Tournament.ID))) 

result 
# A tibble: 13 x 3 
# Groups: Player.id [5] 
    Player.id Tournament.ID Count 
     <int>   <int> <int> 
1   2    3  1 
2   3    3  1 
3   4    3  1 
4   5    3  1 
5   1    2  1 
6   2    2  2 
7   4    2  2 
8   5    2  2 
9   1    1  2 
10   2    1  3