1

R にデータフレームがあり、かなり大きな600行/観測があります

1 つの列はpatientId数値形式ではありません (例: ju89、ju87)。これは因子列です。

1 つの列はremission1/0 で、1 は寛解を意味し、0 は寛解していないことを意味します。

1つの列はtimefromdiagnosis

現在、患者は診断から 1 から 0、0 から 0、0 から 1、または 1 から 1 に変化します。

データフレームに列を追加したい

  • 患者の寛解が 0 の場合は 1
  • 2 正確には、患者の寛解が 1 で、前回が 0、または 1 が寛解で、最後に 1 が寛解、または 1 が寛解で、それが彼の最初の観察である場合
  • 3 患者に 1 回の寛解があり、最後の 2 回以上で 1 回の寛解があった場合

兼合計でこれを行うことを検討しましたplyrが、やりたいことに合わないか、適応する方法があまり明確ではありません

データ フレームは既に並べ替えられているため、患者 ID は互いに隣接し、各患者の診断からの時間は、データ フレームを読み進めるにつれて増加します。

機密保持のためにデータフレームを提供することはできませんが、ここでは物事を明確にするためにどのように見えるかを示します

remission timefromdiag patientid ...(other variables)

これは私が始めているデータです:

patientId  timefromdiagnosis  remission
ju67       1.2                1
ju67       1.6                0
ju67       3                  0
ju88       1.5                1
ju88       2                  1
ju23       1.9                1
ju23       5                  0

そして、これが私が取得したいものです。病気の段階は私が望む列です:

patientId  timefromdiagnosis  remission  disease stage
ju67       1.2                1          2
ju67       1.6                0          1
ju67       3                  0          1
ju88       1.5                1          2
ju88       2                  1          2
ju23       1.9                1          2
ju23       5                  0          1
ju38       1.7                1          2
ju38       1.9                1          2 
ju38       3                  1          3
ju38       4                  1          3
ju38       5                  0          1

ju38現在を含めて 3 回連続して寛解したため (過去 2 回の寛解と現在)、患者がどのように 3 に達したかに注目してください。寛解。

患者ju88は t=2 で寛解し、前回の t=1.5 で寛解しましたが、これは t=2 を含めて 2 回連続した寛解であり、病期 2 です。

患者ju23は t=1.9 で寛解が 1 であり、これが彼の最初の観察であるため、病期 2 の基準を満たします。寛解が 0 の場合、患者は病期 1 になります。

4

1 に答える 1