私はデータセットにギャップがある不規則な時系列を持っています。さらに、データがグループ化される。ラグ関数は観測によって遅れを見つけることができました(データセット内の先行レコードが見つかるように)ので、時間変数を指定し、遅れ時間を計算して遅れを計算します。この質問:R lag/lead irregular time series dataも同様のことをしています。しかし、zoo
ソリューションを使用することはできません(私は何らかのパッケージ非互換性があり、zoo
を使用できません)。data.table
ソリューションを入力として遅延量のある関数として使用するのに十分な柔軟性を持たせることに失敗しましたグループ化されたデータの容量不規則な時系列のdplyrカスタムラグ関数
テストデータ:
testdf <- data.frame(group = c(1,1,1,1,1,2,2,2,2,2),
counter = c(1,2,3,5,6,7,8,9,11,12),
xval = seq(100, 1000, 100))
lagamount <- 1
出力はベクトルでなければなりません:NA 100 200 NA 400 NA 600 700 NA 900
は、これは私が現時点で使用していますものです:
library(dplyr)
testout <- group_by(testdf, group) %>%
mutate(testout = function(x) which((testdf$counter - x) == lagamount))
これは、何か(不特定)がベクトルではないというデータ型エラーを与えます。
この建設作業を行う方法はありますか?あるいは、グループ化された変数で不規則な時系列にどのように遅れをとることができますか?
おそらく、あなたは::動物園 'として、関連する' zoo'関数を呼び出しneeded_function() 'とパッケージをロード避けることができます。 – Axeman
また、 'mutate'に関数を提供しており、ベクトルを期待しているので、そのエラーが発生しています。 – Axeman
ありがとう私は明確にすべきです - 動物園は私のマシンにインストールされません、Rccpの依存関係に問題があります。エラーメッセージの解釈のおかげで、別の試みがあります – JenB