1

こんにちは、私は R にまったく慣れていません。プロジェクトを開始する前に、.csv ファイルに保存されている次のような単純な時系列で単純な時系列分析を試しています。

Date/Time,AT
01-Jan-2008 00:00,1
01-Jan-2008 01:00,2
01-Jan-2008 02:00,3
01-Jan-2008 03:00,4
01-Jan-2008 04:00,5
01-Jan-2008 05:00,4
01-Jan-2008 06:00,3
01-Jan-2008 07:00,2
01-Jan-2008 08:00,1
01-Jan-2008 09:00,2
01-Jan-2008 10:00,3
01-Jan-2008 11:00,4
01-Jan-2008 12:00,5

この .csv ファイルから時系列変数を作成したいと思います。次のコードではエラーが発生します。インストールにパッケージが必要になる可能性はありますか?

test=ts(scan("desktop/test.csv"),frequency=13, start=2008+1/1)

どんな助けでも大歓迎です。

4

2 に答える 2

3

read.zoofrom package を使用しzooて、csv を時系列で直接読み取ることができます。

library(zoo)

fmt <- '%d-%b-%Y %H:%M'

## if data in file replace with this line:
## dat <- read.zoo("myfile.dat",header=TRUE,sep=',',tz='',format=fmt,index=0:1)                     

dat <- read.zoo(text='Date/Time,AT
01-Jan-2008 00:00,1
01-Jan-2008 01:00,2
01-Jan-2008 02:00,3
01-Jan-2008 03:00,4
01-Jan-2008 04:00,5
01-Jan-2008 05:00,4
01-Jan-2008 06:00,3
01-Jan-2008 07:00,2
01-Jan-2008 08:00,1
01-Jan-2008 09:00,2
01-Jan-2008 10:00,3
01-Jan-2008 11:00,4
01-Jan-2008 12:00,5',header=TRUE,sep=',',
                tz='',
                format=fmt,       ## date format
                index=0:1)        ## rownames + first column

dat
2008-01-01 00:00:00 2008-01-01 01:00:00 2008-01-01 02:00:00 2008-01-01 03:00:00 2008-01-01 04:00:00 2008-01-01 05:00:00 
                  1                   2                   3                   4                   5                   4 
2008-01-01 06:00:00 2008-01-01 07:00:00 2008-01-01 08:00:00 2008-01-01 09:00:00 2008-01-01 10:00:00 2008-01-01 11:00:00 
                  3                   2                   1                   2                   3                   4 
2008-01-01 12:00:00 
                  5 

もちろん、zoo オブジェクトを ts オブジェクトに変換することもできます (時系列については、zoo と xts パッケージを使用する方が良い場合でも):

dat.ts <- ts(dat)
于 2013-04-08T18:53:24.003 に答える
1

別の方法として、パッケージ 'Lubridate' を使用することもできます。

library(lubridate)
timeseries <- read.table("timeseries.csv", sep=",", header=T, dec=".")
timeseries[,1] <- dmy_hm(timeseries[,1])

データが「timeseries」と呼ばれる csv に保存されていると仮定すると、データは data.frame に読み込まれます。最初の列はクラス POSIXct に変更されます。POSIXct は、日付/時刻形式として R で広く使用されています。

もちろん、data.frame を ts に変換することもできます。

timeseries <- as.ts(timeseries)
于 2013-04-09T17:36:01.313 に答える