2017-10-16 14 views
-1

私はかなり単純な問題がありますが、なんらかの理由で解決策の周りに私の頭を包み込むことはできません。私はこの方法で編成されたデータを持っている1年に4つのイベントを絶対番号に並べる

..私はRでこれをやろうとしているが、実際、これは数学/心の体操の質問の詳細です: - 気づく欠け年3イベント3を

Year event  
    1  1  
    1  2  
    1  3  
    1  4  
    2  1  
    2  2  
    2  3  
    2  4 
    3  1  
    3  2  
    3  4 
    3  4  

そして、私は1から12になるユニークな番号を持つ列を取得しようとしています。(動物を捕まえるためにt1以来のあらゆる機会にそれを呼びましょう)結果は次のようになります。

Year Event  Occasion 
    1  1    1 
    1  2    2 
    1  3    3 
    1  4    4 
    2  1    5 
    2  2    6 
    2  3    7 
    2  4    8 
    3  1    9 
    3  2   10 
    3  4   12 
    3  4   12 

私も(私の上記の例では例えば何年3イベント3)が欠落していない行がある場合、私は(イベントをスキップするような方法でこれを実行する必要があります絶対値)も同様ですが、3年目のイベント4の機会として12を残しています。私は明らかにそれらを並べて、関連付ける必要がある複数の線があるので、線の数を数えることはできません同じ機会に(例:2行3年/イベント4 /機会12)

ありがとうございました!

+0

最初の問題を自分で解決してみてください。ソリューション(コード!)が期待どおりに機能しない理由について具体的な質問がある場合は、ここで質問してください。 –

答えて

0

あなたは以下のように、簡単な数式を使用することができます。

library(tidyverse) 
df <- tribble(
    ~year, ~event,  
    1,  1,  
    1,  2,  
    1,  3,  
    1,  4, 
    2,  1, 
    2,  2, 
    2,  3, 
    2,  4, 
    3,  1,  
    3,  2,  
    3,  4, 
    3,  4  
) 
df %>% 
    mutate(occasion = ((year - 1) * 4) + event) 

出力:

year event occasion 
    <dbl> <dbl> <dbl> 
1  1  1  1 
2  1  2  2 
3  1  3  3 
4  1  4  4 
5  2  1  5 
6  2  2  6 
7  2  3  7 
8  2  4  8 
9  3  1  9 
10  3  2  10 
11  3  4  12 
12  3  4  12 
+0

はい!私はそれがうまくいくかもしれないと思う。私は* 4で遊んでいましたが、何らかの理由でこれを取得できませんでした!どうもありがとう!私はそれがどのように動作するかをお知らせします –

関連する問題