-2
 [9982] "2012-10-22 12:10:21 EDT" "2012-10-22 02:48:09 EDT" "2012-10-22 13:13:51 EDT"
 [9985] "2012-10-22 14:24:23 EDT" "2012-10-22 10:49:54 EDT" "2012-10-22 09:49:32 EDT"

与えられたのは、私が扱っているデータの R プリントアウトです。基本的に、上記の形式の日付と時刻を含む 1 つの大量のデータ列があります。

このデータを取得して R で時系列グラフを作成する方法を理解できませんでした。任意の時間枠 (10 分、30 分、60 分など) でデータをビニングし、結果をグラフ化することに興味があります。時間とともに。

この問題に関するヘルプは大歓迎です! 読んでくれてありがとう。

4

1 に答える 1

0

あなたが達成したいことのアイデアを実際に私たちに与えるために、サンプルデータの方法で多くを提供することはまったくありませんが、ここにあなたが始めるかもしれない何かがあります. 最終的に推奨されるのは、データを「xts」に変換しperiod.apply、「任意の」時間枠でデータを集計してプロットするために使用することです。

以下にいくつかのサンプル データを示します。最初は、data.frame2012 年 10 月 22 日 12:10:21 EDT から 11 分ごとに収集されたランダム値であり、次に に変換されxtsます。

set.seed(1)
temp <- data.frame(date = seq(as.POSIXct("2012-10-22 12:10:21 EDT", tz="EDT"), 
                              length.out = 100, by = "11 min"),
                   values = rnorm(100))
library(xts)
x.temp <- xts(temp[-1], temp[, 1])
head(x.temp)
#                         values
# 2012-10-22 12:10:21 -0.6264538
# 2012-10-22 12:21:21  0.1836433
# 2012-10-22 12:32:21 -0.8356286
# 2012-10-22 12:43:21  1.5952808
# 2012-10-22 12:54:21  0.3295078
# 2012-10-22 13:05:21 -0.8204684

ここでは、経過した 93 分ごとの合計を任意に集計します。

my93minAgg <- period.apply(x.temp, 
                           INDEX = endpoints(x.temp, on = "mins", k = 93), 
                           FUN = sum)
my93minAgg
#                         values
# 2012-10-22 13:16:21  0.3133101
# 2012-10-22 14:55:21  1.1543989
# 2012-10-22 16:23:21  2.1290954
# 2012-10-22 18:02:21  0.5205041
# 2012-10-22 19:30:21 -0.6007850
# 2012-10-22 21:09:21  1.5058904
# 2012-10-22 22:37:21  0.9999036
# 2012-10-23 00:16:21  1.1553448
# 2012-10-23 01:44:21  1.9799783
# 2012-10-23 03:23:21 -1.7152471
# 2012-10-23 04:51:21  2.9882778
# 2012-10-23 06:19:21  0.4580653

これをプロットする方法は次のとおりです。

plot(my93minAgg, main = "My 93 Minute Aggregation")
于 2013-02-26T19:11:10.343 に答える