2016-12-19 5 views
2

私はCSVファイルからxtsを生成しようとしています。単純なベクトル、つまりDateValueの列は、それぞれ文字と数字であるので、出力は大丈夫です。CSVからxtsオブジェクトを作成

xtsにしたい場合、出力は疑わしいと思われます xtsの一番左の列の出力は何ですか?

> test <- read.csv("Test.csv", header = TRUE, as.is = TRUE) 
> test 
    Date Value 
1 1/12/2014 1.5 
2 2/12/2014 0.9 
3 1/12/2015 -0.1 
4 2/12/2015 -0.3 
5 1/12/2016 -0.7 
6 2/12/2016 0.2 
7 7/12/2016 -1.0 
8 8/12/2016 -0.2 
9 9/12/2016 -1.1 
> xts(test, order.by = as.POSIXct(test$Date), format = "%d/%m/%Y") 
      Date  Value 
0001-12-20 "1/12/2014" " 1.5" 
0001-12-20 "1/12/2015" "-0.1" 
0001-12-20 "1/12/2016" "-0.7" 
0002-12-20 "2/12/2014" " 0.9" 
0002-12-20 "2/12/2015" "-0.3" 
0002-12-20 "2/12/2016" " 0.2" 
0007-12-20 "7/12/2016" "-1.0" 
0008-12-20 "8/12/2016" "-0.2" 
0009-12-20 "9/12/2016" "-1.1" 

私は単純ではなく、左の謎欄より、Date順XTSを設定したいと思います。私はas.Dateもxtsにしようとしましたが、同じ結果があります。

+0

左側の列は実際には列ではなく、行の名前です(Rでは 'row.names')。あなたは[通常表示される名前を変更すること以外は本当にそれを取り除くことができません](http://stackoverflow.com/questions/24428051/removing-display-of-r-row-names-from-data-frame]。 By私はあなたが 'xts'パッケージを使用していると思いますので、あなたの質問にあなたが使用していることを追加して、あなたが何を参照しているのかを素早く確認してください。 –

+0

' testXts = xts(test [、 - 1]あなたのステートメント 'format'のtypoは' as.Date'のパラメータでなければならないことに注意してください。 'xts'関数 – OdeToMyFiddle

+0

ああ、それはたくさん説明します - ありがとう! –

答えて

1

問題は二重に見えます。 1つは、通話中に誤った括弧があります。 2つは、最も左の列がインデックスであり、Date列が不必要になります。

df <- read.table(text=" 
    Date Value 
    1/12/2014 1.5 
    2/12/2014 0.9 
    1/12/2015 -0.1 
    2/12/2015 -0.3 
    1/12/2016 -0.7 
    2/12/2016 0.2 
    7/12/2016 -1.0 
    8/12/2016 -0.2 
    9/12/2016 -1.1", 
    header=TRUE) 

df$Date <- as.Date(df$Date, format="%d/%m/%Y") 

library(xts) 
xts(df[-1], order.by=df[,1]) 

#   Value 
# 2014-12-01 1.5 
# 2014-12-02 0.9 
# 2015-12-01 -0.1 
# 2015-12-02 -0.3 
# 2016-12-01 -0.7 
# 2016-12-02 0.2 
# 2016-12-07 -1.0 
# 2016-12-08 -0.2 
# 2016-12-09 -1.1 
2

は、私はあなたがして、CSVからのデータを読み取るas.xtsを使用してXTSために、結果を変換するread.zooを使用することをお勧め。

Text <- "Date,Value 
1/12/2014,1.5 
2/12/2014,0.9 
1/12/2015,-0.1 
2/12/2015,-0.3 
1/12/2016,-0.7 
2/12/2016,0.2 
7/12/2016,-1.0 
8/12/2016,-0.2 
9/12/2016,-1.1" 
z <- read.zoo(text=Text, sep=",", header=TRUE, format="%m/%d/%Y", drop=FALSE) 
x <- as.xts(z) 
#   Value 
# 2014-01-12 1.5 
# 2014-02-12 0.9 
# 2015-01-12 -0.1 
# 2015-02-12 -0.3 
# 2016-01-12 -0.7 
# 2016-02-12 0.2 
# 2016-07-12 -1.0 
# 2016-08-12 -0.2 
# 2016-09-12 -1.1 

、あなたの実際の呼び出しからtext = Textを省略し、file = "your_file_name.csv"とそれを交換する必要があります注意してください。

関連する問題