在R中命名一列

时间:2016-07-13 01:09:42

标签: r quantmod

我对代码很新,所以这个解决方案可能很简单;但是,我通过搜索找不到合适的答案。

我正在使用quantmod包。

我刚刚使用getFX变量下载了数据。我把它分配给了我的全球环境。

我想在ggplot中绘制它,但我遇到了问题。它使用绘图功能工作正常。但是,当我尝试通过str()功能找出列名称时,我只会获得一个带有标题的列。日期字段为空白,结构显示POSIXct[1:1]。如何标题此日期列,以便我可以在ggplot中绘制它?

我尝试过以下但没有运气

JPYchart <- getFX("USD/JPY", from="2013-05-05", header=FALSE)

我的印象是标题会命名我的colum v1,v2等,因为它们未命名,但它们仍然是空白的。

1 个答案:

答案 0 :(得分:1)

这对我有用

library(quantmod)
library(ggplot2)

# getFX returns USDJPY xts object
getFX("USD/JPY", from="2013-05-05", header=FALSE)

str(USDJPY)
# An ‘xts’ object on 2013-05-05/2016-07-12 containing:
#  Data: num [1:1165, 1] 99 99.2 99.1 98.9 99.1 ...
# - attr(*, "dimnames")=List of 2
#  ..$ : NULL
#  ..$ : chr "USD.JPY"
#  Indexed by objects of class: [Date] TZ: UTC
#  xts Attributes:  
# List of 2
# $ src    : chr "oanda"
# $ updated: POSIXct[1:1], format: "2016-07-12 19:20:01"

# convert USDJPY to a data.frame
df <- as.data.frame(USDJPY)
df$date <- as.Date(rownames(df))

str(df)
#    'data.frame':  1165 obs. of  2 variables:
# $ USD.JPY: num  99 99.2 99.1 98.9 99.1 ...
# $ date   : Date, format: "2013-05-05" "2013-05-06" "2013-05-07" "2013-05-08" ...

# plot with ggplot
ggplot(data = df, aes(x = date, y = df$USD.JPY)) +
  geom_line()

example output