【发布时间】:2017-07-10 00:09:39
【问题描述】:
我了解“错误:美学必须是长度 1 或与数据相同”的主题已经做了很多(在线阅读大量),但是我还有一些未解决的问题
我正在处理一个关于 2015 年打给西雅图警察局的所有电话的数据集。在将数据清理为可接受的格式后,我最终得到了一个包含 62,092 行和 13 列的数据集(数据集名称为 SPD_2015 )。我会将数据集的一部分添加到这个问题中,但我不完全确定如何以清晰易读的格式进行操作。
我使用包 lubridate 来提取与我的数据集相关的时间。然后我创建了一个条形图,显示犯罪发生的时间
ggplot(SPD_2015, aes(hour(date.reported.time))) +
geom_bar(width = 0.7)
而且效果很好。
由于汽车徘徊是最常报告的犯罪,我想绘制这些汽车徘徊发生的时间。这就是我遇到错误““错误:美学必须是长度 1 或与数据相同”的时候。
我读到 ggplot2 不喜欢在 ggplot 代码中进行子集化,因此我通过创建单独的数据框来对数据进行子集化。
car.prowl <- filter(SPD_2015, summarized.offense.description == "CAR PROWL")
所以这是我的问题。为什么当我查看我新创建的数据集“car.prowl”的维度时,我发现它的维度为 11,539 行和 13 列。但是当我检查发生时间列(犯罪发生的时间)中的小时长度时,我得到的长度是 62,092,这是原始数据集的长度吗?
在我看来,我认为以下代码会起作用:
ggplot(car.prowl, aes(hour(occured.time))) +
geom_bar()
car.prowl$occured.time 的长度是正确的:
> length(car.prowl$occured.time)
[1] 11539
但是当我应用小时函数时,我得到了原始数据集的长度:
> length(hour(car.prowl$occured.time))
[1] 62092
什么时候应该是 11,539。
谢谢。请让我知道我能做些什么来使我的问题更清楚。
【问题讨论】:
-
请提供一个可重现的例子,例如通过在数据样本上使用
dput并粘贴输出。例如样本25个条目:dput(SPD_2015[sample(1:nrow(SPD_2015), 25), ],选择合适的条目数来重现错误。 -
您的代码只是 R 脚本,还是 Markdown 文档的一部分?如果是降价文档,则可能是缓存问题。