我得到了帮助解析此站点上的以下XML文件:
<?xml version = "1.0"?>
<Company >
<shareprice>
<timeStamp> 12:00:00.01</timeStamp>
<Price> 25.02</Price>
</shareprice>
<shareprice>
<timeStamp> 12:00:00.02</timeStamp>
<Price> 15</Price>
</shareprice>
<shareprice>
<timeStamp> 12:00:00.025</timeStamp>
<Price> 15.02</Price>
</shareprice>
<shareprice>
<timeStamp> 12:00:00.031</timeStamp>
<Price> 18.25</Price>
</shareprice>
<shareprice>
<timeStamp> 12:00:00.039</timeStamp>
<Price> 18.54</Price>
</shareprice>
<shareprice>
<timeStamp> 12:00:00.050</timeStamp>
<Price> 16.52</Price>
</shareprice>
<shareprice>
<timeStamp> 12:00:01.01</timeStamp>
<Price> 17.50</Price>
</shareprice>
</Company>
我在R中使用以下代码尝试绘制数据以获取Y轴上的股价和x轴上的时间戳:
library (XML)
test.df <- xmlToDataFrame("c:/Users/user/Desktop/shares.xml")
test.df
attach(test.df)
mean(as.numeric(Price))
sd (as.numeric(Price))
plot(timeStamp,as.numeric(Price))
然而,由此产生的情节不是我所期望的。它返回x轴上的时间戳,但y轴的编号为1 - 7.我是否应该在R或XML文件本身中更改数据集?
答案 0 :(得分:1)
您需要将x轴数据实际转换为时间对象。结合你的
library (XML)
test.df <- xmlToDataFrame("c:/Users/user/Desktop/shares.xml")
test.df
attach(test.df)
mean(as.numeric(Price))
sd (as.numeric(Price))
我上周在this SO question向您展示的内容(并且您需要as.character()
,因为您的数据可能是作为因素出现的)
timeStampParsed <- strptime(as.character(timeStamp), "%H:%M:%OS")
之前可以通过
进行绘图plot(timeStampParsed, as.numeric(Price))
同样对于ggplot2:首先需要将数据转换为日期类型。
最后,如果您希望其中的实际日期与今天的估算默认值不同,则需要将其添加到timeStamp
文本中,例如
timeStampParsed <- strptime(paste("2010-07-01"), as.character(timeStamp),
"%Y-%m%-%d %H:%M:%OS")
答案 1 :(得分:-1)
尝试来自hadley的ggplot2包 - 这很有趣。
用id日期融化你的日期,然后用qplot绘图:
test = melt(test.df,id="timestamps")
qplot(timestamp,yvalue,data=test.df,geom="line")
等。
HTH
编辑:
影响规模使用:
qplot(...) + scale_y_continuous(limits = c(-0.25,0.25))
还要确保检查ggplot2文档(您可以在上面的链接中找到它) - 它只是两个步骤,每个其他R文档绘制出来。