【问题标题】:Average dataframe data in r by column value按列值计算 r 中的平均数据帧数据
【发布时间】:2020-01-21 17:00:45
【问题描述】:

我正在尝试自动平均列中具有相同值的数据框中的数据。

这里是模拟数据框的代码

col1 <- c(1,1,1,2,2,2,3,3,3)
col2 <- c(10,20,15,5,8,7,30,1,25)
col3 <- c(.5,.4,.2,.2,.2,.1,.4,.5,.9)
testdf <- data.frame(col1,col2,col3)

以及该数据帧的输出

testdf
  col1 col2 col3
1    1   10  0.5
2    1   20  0.4
3    1   15  0.2
4    2    5  0.2
5    2    8  0.2
6    2    7  0.1
7    3   30  0.4
8    3    1  0.5
9    3   25  0.9

我想要做的是获得一个输出,该输出为我提供第 1 列中具有相同值的所有数据的第 2 列和第 3 列中的值的平均值(即,当第 1 列值是时第 2 列值的平均值) 1 为 15,当第 1 列值为 1 时,第 3 列的平均值为 0.367)

【问题讨论】:

标签: r dataframe average


【解决方案1】:

我们可以从base R使用aggregate

aggregate(.~ col1, testdf, mean)

dplyr

library(dplyr)
testdf %>%
  group_by(col1) %>%
  summarise_all(mean)

data.table

library(data.table)
setDT(testdf)[, lapply(.SD, mean), by = col1]

【讨论】:

  • 非常感谢。这回答了我的问题。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 2022-01-06
  • 2021-10-24
相关资源
最近更新 更多