2017-07-06 12 views
0

私は時間/値のデータセットを持っています。xyデータセットを配列に変換する

> df <- data.frame(time=c(1,4,5,6), speed=c(100, 500, 600, 800)) 

Iは、タイムティックごとに一つの項目を配列に変換する:時間== 2及び3の値が追加されたこと

> some_func(df, speed ~ time, step=1) 
[1] 100 100 100 500 600 800 

予告。

次に、相互相関関数で使用できます。

+0

なく、同じ値が、線形近似は2倍と3 – lmo

答えて

1

これは、必要な値を返します。ここ

df$speed[rep(seq_len(nrow(df)), c(diff(df$time), 1))] 
[1] 100 100 100 500 600 800 

、我々は、df$speedための所望のベクトルのインデックスを返すために、第2引数のベクトル引数と共にrepを使用します。 diffでこれを達成します。これは、期間ギャップを計算し、最終値を返すために最後に1を追加します。

+0

感謝のための線形補間で埋め '約(DF $時間、DFの$の速度、N = 6)'によって返されます。それは私が必要とすることをするために開発することができます。 A.o.小数点以下の時間と秒未満の解像度の処理。 –

2

可能な方法は、上の例でこれを望むように、ステップ関数を使って補間することです。

sf<-stepfun(df$time,c(df$speed[1],df$speed)) 
sf(1:6) 
+0

残念ながら、これはccf関数では機能しません。これが私の必要です。ベクトルに変換する方法はありますか? –

+1

評価されたオブジェクトsf(1:6)は数値ベクトルです。したがって、ccf(sf(1:6)、sf(2:7))は動作します。 – alex2006

+0

ありがとうございます。それはトリックです。 –

関連する問題