【问题标题】:dplyr. Spectral (reflectance) dataframe. Average all spectral values based on a single attribute . Rdplyr。光谱(反射率)数据框。基于单个属性平均所有光谱值。 R
【发布时间】:2019-02-08 14:31:28
【问题描述】:

我有一个数据框,它由 5 个属性(例如绘图、重量、日期等)加上 2000 个光谱值(不同的波长)组成。因此,大约有 2005 列。

对于这些列,有 120 次测量(24 个对象 * 测量 5 次)。我热衷于根据属性(即绘图)平均反射率(波长)值(2000 列)。

我正在考虑使用 dplyr 包和管道:

DF &>%
   group_by(Plot) %>%
   aggregate(... *I am stuck here*

最终目标是拥有一个包含 2005 列、24 行的数据框(每行由原始元数据 + 每个波长的平均值*基于绘图编号)。

谢谢

【问题讨论】:

标签: r dataframe dplyr average


【解决方案1】:

对于类似的任务,我通常使用 dplyr 的 summarize_all 函数。 您需要删除所有无法平均的列(例如,如果您的复制具有不同的日期),group_by 剩余的元数据。 类似的东西:

DF %>%
  select(-Date) %>% # remove those metadata columns that cannot be averaged
  group_by(Plot) %>%
  summarize_all(mean)

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多