Rのデータセットで特定の値を選択する必要があり、実際にそれを行う方法を理解できません。R最初の値の出現を選択してください
(追記として:データが何を表してない)
これは、3つの他のノードに接続するネットワーク・ノードの測定値です。 '時間'は相対時間を表します(何かが起きたとき)。 'tm1、tm2、tm3'は、接続が現在どのプロトコル状態にあるかを示します。 'known'は、接続するノードの絶対数です。 (ここでは最大3)CSVなど、すべてのいくつかのテストデータの
まず:
time,tm1,tm2,tm3,known
4,1,0,0,1
12,2,0,0,2
206,3,0,0,3
238,2,1,0,3
255,1,2,0,3
297,1,1,1,3
309,1,0,2,3
401,0,1,2,3
446,0,0,3,3
3,1,0,0,1
58,2,0,0,2
235,1,1,0,2
258,1,0,1,2
320,0,1,1,2
335,0,0,2,2
874,1,0,2,3
1024,0,1,2,3
1030,0,0,3,3
3,1,0,0,1
20,2,0,0,2
132,1,1,0,2
151,1,0,1,2
207,0,1,1,2
228,0,0,2,2
852,1,0,2,3
929,0,1,2,3
938,0,0,3,3
各行は「何かが」システムに変更されていることが、私は、このデータをフィルタリングする必要があります。 例えば1つのフレームである:
time,tm1,tm2,tm3,known
3,1,0,0,1 <- ignore
20,2,0,0,2 <- ignore
132,1,1,0,2 <- ignore
151,1,0,1,2 <- select (first appearance of 1 in tm3)
207,0,1,1,2 <- ignore
228,0,0,2,2 <- select (first appearance of 2 in tm3)
852,1,0,2,3 <- ignore
929,0,1,2,3 <- ignore
938,0,0,3,3 <- select (first appearance of 3 in tm3)
選択したデータは、常に3、興味深いエントリーが含まれており、それぞれ「フレーム」は9行を保持している、これはすべて、いわゆるフレームについても同様です(あなたは時間があまりにジャンプするときことに気づくことができますCSVデータの値)
たぶん私はより多くのデータをプロットする必要がありますが、これはさらに複雑になると、私は私が正しく、このようなステートマシンをプロットすることができますかどうかはわかりません。 3つの "ノード"で動作することは、条件によって確実に管理できますが、6ノードと言うと、すぐに実行できます。私はRで相対的な新しいので、Rが正しい決定であるかどうか分からない、私はちょうどいくつかの測定データを素早くプロットしたいので、Rは完全に適合する。 しかし、このようなステートマシンをRに適切にプロットすることはどれくらいの労力を要していますか?それに多くの時間を投資することはできず、単純なデータプロットを実行することはできません。
残念ながら、私はそれがどれだけ複雑になるか推測できません。 はたぶん誰かが私を啓発することができ、または既にステートマシンを視覚化し、それを行うにはどのようにいくつかのヒントを持っていませんでした。
Aは、状態を可視化する上で詳細ビット:
接続する必要があり、ネットワーク内の3つのノードが、ある提案します。したがって、各行は実際にはネットワーク接続状態の変化を表します。
実行されるプロトコルは、接続のために実行される必要がある、3つのプロトコルの段階からなります。
4,1,0,0,1
という意味は、ノードから受信したメッセージであり、今度はプロトコルに進みます。 次の行は、次にある:
100,0,1,0,1
この段階が成功した場合、次のプロトコル段階が起こる:
200,0,0,1,1
我々はこの状態に達した場合、他のノードは、認証確認して接続されています。 私のサンプルデータに見られるように、これらのメッセージは順不同で表示されます。 間の遷移が決してないが:他のノードからのメッセージが他のメッセージとの間に表示されることができる
200,0,0,1,1
に直接
4,1,0,0,1
は。
実際には視覚化ではなく、各プロトコルステージの移行にかかる時間です。これは私が実際に得る必要があるデータです。
私はこれを書いているので、実際のデータでは、これを現在の情報で視覚化することはできないと思います。
簡単な方法は、各ノードに固有の識別子を導入し、識別子と時間に基づいてリストをソートすることです。それで、プロトコル段階が単一のノードのために飛び越えることができないので、それは時間に基づいて正しく注文されるので、我々は自動的に幾分順序付けられたリストを得る。各ノード自体に固定されたエントリがあるため、これらのデータは簡単に計算して視覚化することができます。
現在のところ、このデータはそれほど簡単には達成できませんが、視覚化する必要がある場合は、一意の識別子を取得できないようです。
私はstatemachine(s)に精通していませんが、あなたの質問は 'tm3'の値が変更されるたびに最初の行を選択することに沸きますか?それともそれ以上はありますか? – Chase
はい、これは私の現在の問題の主要な部分です。 – evildead
[Here](http://stackoverflow.com/documentation/r/9126/implement-state-machine-pattern-using-s4-class)では、RからのS4クラスを介してステートマシンパターンを使用してアプローチを見つけることができます。独自のソリューションを設計する際に役立ちます。 –