R を使用して、複数の時系列を含むデータ フレームの最初と最後から NA 値をトリミングしようとしています。forループとzooパッケージを使用して目標を達成しましたが、予想通り、大きなデータフレームでは非常に非効率的です。
私のデータ フレームは次のようになり、一意の ID で識別される各時系列の 3 つの列が含まれます。この場合、AAA、B、および CCC です。
id date value
AAA 2010/01/01 NA
AAA 2010/02/01 34
AAA 2010/03/01 35
AAA 2010/04/01 30
AAA 2010/05/01 NA
AAA 2010/06/01 28
B 2010/01/01 NA
B 2010/02/01 0
B 2010/03/01 1
B 2010/04/01 2
B 2010/05/01 3
B 2010/06/01 NA
B 2010/07/01 NA
B 2010/07/01 NA
CCC 2010/01/01 0
CCC 2010/02/01 400
CCC 2010/03/01 300
CCC 2010/04/01 200
CCC 2010/05/01 NA
各時系列の開始と終了、この場合は AAA、B、および CCC から NA 値を効率的に削除する方法を知りたいです。したがって、このように見えるはずです。
id date value
AAA 2010/02/01 34
AAA 2010/03/01 35
AAA 2010/04/01 30
AAA 2010/05/01 NA
AAA 2010/06/01 28
B 2010/02/01 0
B 2010/03/01 1
B 2010/04/01 2
B 2010/05/01 3
CCC 2010/01/01 0
CCC 2010/02/01 400
CCC 2010/03/01 300
CCC 2010/04/01 200