我有一个小问题。我在R数据帧中有Netlogo的输出。 现在我想在Runnumber上绘制每个Run的最大滴答数。 所以我有一个名为' tick'还有一个名为“runNumber'”的人。而且我想绘制最多的' tick'在不同的runNumbers。
我希望你能帮助我,
感谢。
答案 0 :(得分:3)
这完全是如何在R中处理您的数据的问题,因为它为您提供了无数的方法来实现您的要求,我将向您展示一种可能的方法:
要处理的一些示例数据:
df <- data.frame(tick = c(1:10, 1:35, 1:17),
runNumber = c(rep(1, 10), rep(2, 35), rep(3, 17)))
您可以看到三次运行中每次运行的最大滴答数分别为10,35和17。
为了绘制这些图,您需要操纵您的数据(我建议您在其vignettes中阅读dplyr
):
library(dplyr)
df.summary <- df %>%
group_by(runNumber) %>%
summarise(max_tick = max(tick))
df.summary
# Source: local data frame [3 x 2]
#
# runNumber max_tick
# 1 1 10
# 2 2 35
# 3 3 17
dplyr
代码相当不言自明。您将每个运行视为一个单独的组,并仅提取tick
列的最大值。
要想象这些数据,您只需使用:
library(ggplot2)
ggplot(df.summary, aes(x = runNumber, y = max_tick)) +
geom_bar(stat = "identity")