【问题标题】:Subset data and plotting in RR中的子集数据和绘图
【发布时间】:2016-01-02 19:14:06
【问题描述】:

我想使用 R 来简化和子集大型数据集(超过 100 000 个值),然后绘制它们。下面是我的数据集的简化版本(图 1),我将其分为三年和两种作物类型。我有一年(2011-2013),两种作物类型(玉米和大豆)及其总面积。

我想按年份将数据子集到玉米和大豆的总面积到一个新表(示例图 2)中,其中包含年份、类型和总面积,然后按年份绘制每个总面积(绘图示例在图 3)中。

图 1 小示例数据集

图2新建总表

图 3 我要生成的图表示例

我认为我可以按年份对数据进行子集化并使用

corn2011

corn2012

然后我可以使用 sum 函数对数据进行汇总

sum(corn2011[,3]),

但我不知道如何将它们每年绘制或相互对照以使其看起来像图 3。

【问题讨论】:

  • 我们无权访问您的数据集。一个可重现的例子会很有用(使用 dput())。

标签: r plot subset


【解决方案1】:

对于你的情节,你可以试试这个

data.df <- read.table(text="
   Year            Type Area
1       2011 corn  30
2       2012 corn  15
3       2013 corn  50
4       2011 Soy  45
5       2012 Soy  30
6       2013 Soy  60",
  header = TRUE)

ggplot(data=data.df, aes(x=as.factor(Year), y=Area, group=Type, color=Type)) + geom_line() + xlab("Year") + ylab("Area (ha)") + theme_bw() + scale_color_manual(values=c("red", "blue"))

【讨论】:

  • 是的,适用于我的图 2,解决了我的主要问题。现在我只需要弄清楚如何将我的数据从图 1 汇总到图 2。
  • 别忘了接受答案:) 并尝试 Fig2Dataset % group_by(Year, Type) %>% summarise(AreaSum = sum(Area)
  • 我认为这也行,但 %>% 代表什么?
  • 它是一个管道运算符,非常有用。您可以在此处了解有关该运算符的更多信息r-statistics.com/2014/08/…
  • 非常感谢 :) 需要 ("ggplot2")、("dplyr") 和 ("magrittr") 包,但现在它适用于示例数据集 XD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多