【发布时间】:2018-07-05 21:59:12
【问题描述】:
InvoiceDate<-c("2018-01-01 08:26:00","2018-01-01 08:26:00","2018-01-01 08:26:00","2018-01-01 08:26:00","2018-01-02 08:26:00","2018-01-02 08:26:00","2018-01-02 08:26:00","2018-01-02 08:26:00","2018-01-03 08:26:00","2018-01-04 08:26:00","2018-01-04 08:26:00","2018-01-04 08:26:00")
UnitPrice<-c(2.27,2.28,2.29,2.30,2.31,2.32,3.22,5.26,2,26,3.23,2.50)
myData<-data.frame(InvoiceDate,UnitPrice)
我想创建一个烛台图。但我的问题是如何计算开、关、高、低值。 R中有没有图书馆?谢谢。
还有我的循环:
df<-data.frame(
open=double(),
close=double(),
min=double(),
max=double(),
date=as.Date(character())
)
firstDate<-as.Date(myData$InvoiceDate[1])
firstOpen<-myData$UnitPrice[1]
min<-myData$UnitPrice[1]
max<-myData$UnitPrice[1]
for(row in 1:nrow(myData))
{
actualDate<-as.Date(myData$InvoiceDate[row])
actualPrice<-myData$UnitPrice[row]
if(actualDate==firstDate)
{
if(min>actualPrice)
{
min<-actualPrice
}
if(max<actualPrice)
{
max<-actualPrice
}
}
if(actualDate!=firstDate)
{
open=firstOpen
close=myData$UnitPrice[row-1]
date=as.Date(myData$InvoiceDate[row-1])
values<-data.frame(open,close,minPrice,maxPrice,date)
df<-rbind(df,values)
firstDate<-actualDate
firstOpen<-myData$UnitPrice[row]
min<-myData$UnitPrice[row]
max<-myData$UnitPrice[row]
}
}
所以开放值意味着它是每个日期的第一个值 收盘价是每个日期的最后一个值。 min 和 max 是每个日期的最小值和最大值
它正在工作,但错过了最后日期的行,例如它是“2018-01-04 08:26:00”
【问题讨论】:
-
到目前为止你尝试了什么?
-
我尝试编写自己的 for 循环,但它不起作用。
-
您可以添加一个数据样本(带有 dput 的结果),然后粘贴您的代码,以便有人可以帮助您吗?
-
我添加了这个...
标签: r candlestick-chart