我正在使用R使用以下架构从csv文件中创建数据的表面图:
Date,Event Score,Location
2014-01-01,10,Louisville
2014-02-03,13,Atlanta
2014-03-10,99,Boulder
很明显,也就是说,在路易斯维尔,2014年1月1日的事件得分为10; 2014年2月2日,亚特兰大的比赛得分为13分;最后在2014年3月10日在博尔德,事件得分为99。
我有大约100,000多条这样的记录,想要生成一个表面图表,其中x轴是城市名称,y轴是日期,z轴只是正常的数值数据(“事件得分”) 。
我使用以下内容通过this site提取数据:
HM <- read.csv("/path/to/data.csv")
并通过this post按如下方式转换日期列:
HM$Date <- as.Date(HM$Date, "$Y-%m-%d")
我尝试过几次来自格子的线框,但无济于事。我感觉这与我理解R如何操纵变量中的数据有关。我甚至尝试使用R_Users技术绘制日期和分数,再次没有结果。以下是我如何嘲笑他的代码:
HM <- read.csv("/path/to/data.csv")
HM$Date <- as.Date(HM$Date, "$Y-%m-%d")
plot(Event.Score ~ Date, HM, xaxt = "n",type = "1")
axis(1, HM$Date, format(HM$Date, "%b %d"), cex.axis = .7)
运行plot命令后,我收到以下错误:
Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
我正在寻找的是指向如何将轴作为名单/日期列表绘制一些更清晰的文档的方向,以及任何建议,技巧或如何实际生成它的示例。
非常感谢,随时回答问题。
答案 0 :(得分:0)
只是为了跟进,万一有人偶然发现这个,为了让这个工作,我必须规范化我的原始数据。
也就是说,我不得不将数据转换为不仅有日期有事件的条目。 R不能解释零数据。因此,没有事件的一天必须手动输入0分。换句话说,我不得不转换这个数据集:
Date,Event Score,Location
2014-01-01,10,Louisville
2014-02-03,13,Atlanta
2014-03-10,99,Boulder
对于这样的事情:
Date,Event Score,Location
2014-01-01,10,Louisville
2014-01-01,0,Atlanta
2014-01-01,0,Boulder
2014-01-02,0,Louisville
2014-01-02,0,Atlanta
2014-01-02,0,Boulder
2014-01-03,0,Louisville
2014-01-03,0,Atlanta
2014-01-03,0,Boulder
...
2014-03-10,0,Louisville
2014-03-10,0,Atlanta
2014-03-10,99,Boulder
一旦我的数据以这种方式格式化,以下工作完美无瑕:
HM <- read.csv("/path/to/data.csv")
wireframe(Event.Score ~ Date + Location, HM)
此外,与levelplot不同,线框似乎不喜欢用as.Date函数解释日期。与levelplot不同,试图将其转换为日期范围要容易得多。