如何将导入的CSV更改为R中的xts

时间:2017-10-18 18:41:40

标签: r csv import xts

我有一些从excel csv文件导入的数据。

如何将数据作为xts获取?

         Date    Open    High     Low   Close
1  2017-09-01 1.29360 1.29951 1.29052 1.29495
2  2017-09-03 1.29600 1.29660 1.29444 1.29535
3  2017-09-04 1.29536 1.29643 1.29124 1.29300
4  2017-09-05 1.29306 1.30440 1.29088 1.30331
5  2017-09-06 1.30331 1.30820 1.30181 1.30471
6  2017-09-07 1.30472 1.31381 1.30325 1.31319
7  2017-09-08 1.31319 1.32239 1.31233 1.31945
8  2017-09-10 1.31816 1.31978 1.31736 1.31769
9  2017-09-11 1.31769 1.32223 1.31593 1.31764
10 2017-09-12 1.31766 1.33145 1.31703 1.33097
11 2017-09-13 1.33096 1.33286 1.31836 1.32040
12 2017-09-14 1.32039 1.34055 1.31501 1.33955
13 2017-09-15 1.33955 1.36159 1.33922 1.35871
14 2017-09-17 1.35579 1.36029 1.35579 1.35921
15 2017-09-18 1.35921 1.36181 1.34646 1.35176
16 2017-09-19 1.35176 1.35515 1.34683 1.35178
17 2017-09-20 1.35178 1.36573 1.34517 1.34914
18 2017-09-21 1.34914 1.35861 1.34706 1.35761
19 2017-09-22 1.35760 1.35955 1.34496 1.34935
20 2017-09-24 1.34872 1.35339 1.34832 1.35261
21 2017-09-25 1.35262 1.35706 1.34308 1.34816
22 2017-09-26 1.34816 1.35139 1.34094 1.34385
23 2017-09-27 1.34386 1.34389 1.33634 1.33753
24 2017-09-28 1.33754 1.34551 1.33427 1.34159
25 2017-09-29 1.34160 1.34258 1.33497 1.33963

2 个答案:

答案 0 :(得分:1)

尝试Convert date-time format for use in xts了解更多信息,但这适用于您的数据子集。

var obj = { item1 : 1 , item : 2 }

答案 1 :(得分:1)

my.dat <-   read.table(text=   "Date    Open    High     Low   Close
1  2017-09-01 1.29360 1.29951 1.29052 1.29495
2  2017-09-03 1.29600 1.29660 1.29444 1.29535
3  2017-09-04 1.29536 1.29643 1.29124 1.29300
4  2017-09-05 1.29306 1.30440 1.29088 1.30331
5  2017-09-06 1.30331 1.30820 1.30181 1.30471
6  2017-09-07 1.30472 1.31381 1.30325 1.31319
7  2017-09-08 1.31319 1.32239 1.31233 1.31945
8  2017-09-10 1.31816 1.31978 1.31736 1.31769
9  2017-09-11 1.31769 1.32223 1.31593 1.31764
10 2017-09-12 1.31766 1.33145 1.31703 1.33097
11 2017-09-13 1.33096 1.33286 1.31836 1.32040
12 2017-09-14 1.32039 1.34055 1.31501 1.33955
13 2017-09-15 1.33955 1.36159 1.33922 1.35871
14 2017-09-17 1.35579 1.36029 1.35579 1.35921
15 2017-09-18 1.35921 1.36181 1.34646 1.35176
16 2017-09-19 1.35176 1.35515 1.34683 1.35178
17 2017-09-20 1.35178 1.36573 1.34517 1.34914
18 2017-09-21 1.34914 1.35861 1.34706 1.35761
19 2017-09-22 1.35760 1.35955 1.34496 1.34935
20 2017-09-24 1.34872 1.35339 1.34832 1.35261
21 2017-09-25 1.35262 1.35706 1.34308 1.34816
22 2017-09-26 1.34816 1.35139 1.34094 1.34385
23 2017-09-27 1.34386 1.34389 1.33634 1.33753
24 2017-09-28 1.33754 1.34551 1.33427 1.34159
25 2017-09-29 1.34160 1.34258 1.33497 1.33963",
 header=TRUE, colClasses=c("integer","Date", rep("numeric", 4) ) )

然后转换为xts类,它是一个矩阵和一个索引,因此您需要从作为x传递的对象中删除日期列。

my.xts <- as.xts(my.dat[-1], order.by=my.dat[[1]])
str(my.xts)
#-----------
An ‘xts’ object on 2017-09-01/2017-09-29 containing:
  Data: num [1:25, 1:4] 1.29 1.3 1.3 1.29 1.3 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:4] "Open" "High" "Low" "Close"
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
 NULL