通过从数据框中的两列中进行选择来计算均值
Calculating mean by selecting from two columns in a data frame
我想计算两个变量的 data.frame 的平均值。
请参阅下面的 data.frame(提取)示例:
Station Time Year Month Value
ARO 199501 1995 1 69
ARO 199502 1995 2 87
ARO 199503 1995 3 107
ARO 199601 1996 1 35
ARO 199602 1996 2 46
ARO 199603 1996 3 50
ANT 200401 2004 1 87
ANT 200402 2004 2 115
ANT 200403 2004 3 110
ANT 200501 2005 1 80
ANT 200502 2005 2 122
ANT 200503 2005 3 107
更详细一点:我想计算每个站点和月的平均值,例如第 1 个月 ARO 的平均值 = (69+35)/2,第 1 个月 ANT 的平均值 = (87+80)/2
年份无关紧要,因为我想为每个月和每个站点计算 20 年期间的平均值。
我的数据框很大,有 61 个站和 12 个月,每个 20 年的时间序列。
我尝试了几种方法,例如 split
或 aggregate
和 ddply
,但其中 none 有效。
最后,我想要一个新的数据框,如下所示:
Station Month Valuemean
ARO 1 52
ARO 2 66.5
ARO 3 78.5
ANT 1 83.5
ANT 2 118.5
ANT 3 108.5
如果你有一些实现它的想法就太好了。非常感谢!
PS:我是 R 初学者 ;)
假设您的数据名为 df
,您可以尝试 aggregate
aggregate(Value~Month+Station, data=df, FUN = mean)
Month Station Value
1 1 ANT 83.5
2 2 ANT 118.5
3 3 ANT 108.5
4 1 ARO 52.0
5 2 ARO 66.5
6 3 ARO 78.5
您可以使用 data.table
包:
library(data.table)
setDT(df)[,mean(Value), by=list(Month, Station)]
使用 dplyr 包,如果你的 data.frame 被称为 dat
:
library(dplyr)
means <- dat %>%
group_by(Station, Month) %>%
summarise(Valuemean = mean(Value, na.rm = TRUE))
我想计算两个变量的 data.frame 的平均值。 请参阅下面的 data.frame(提取)示例:
Station Time Year Month Value
ARO 199501 1995 1 69
ARO 199502 1995 2 87
ARO 199503 1995 3 107
ARO 199601 1996 1 35
ARO 199602 1996 2 46
ARO 199603 1996 3 50
ANT 200401 2004 1 87
ANT 200402 2004 2 115
ANT 200403 2004 3 110
ANT 200501 2005 1 80
ANT 200502 2005 2 122
ANT 200503 2005 3 107
更详细一点:我想计算每个站点和月的平均值,例如第 1 个月 ARO 的平均值 = (69+35)/2,第 1 个月 ANT 的平均值 = (87+80)/2
年份无关紧要,因为我想为每个月和每个站点计算 20 年期间的平均值。
我的数据框很大,有 61 个站和 12 个月,每个 20 年的时间序列。
我尝试了几种方法,例如 split
或 aggregate
和 ddply
,但其中 none 有效。
最后,我想要一个新的数据框,如下所示:
Station Month Valuemean
ARO 1 52
ARO 2 66.5
ARO 3 78.5
ANT 1 83.5
ANT 2 118.5
ANT 3 108.5
如果你有一些实现它的想法就太好了。非常感谢!
PS:我是 R 初学者 ;)
假设您的数据名为 df
,您可以尝试 aggregate
aggregate(Value~Month+Station, data=df, FUN = mean)
Month Station Value
1 1 ANT 83.5
2 2 ANT 118.5
3 3 ANT 108.5
4 1 ARO 52.0
5 2 ARO 66.5
6 3 ARO 78.5
您可以使用 data.table
包:
library(data.table)
setDT(df)[,mean(Value), by=list(Month, Station)]
使用 dplyr 包,如果你的 data.frame 被称为 dat
:
library(dplyr)
means <- dat %>%
group_by(Station, Month) %>%
summarise(Valuemean = mean(Value, na.rm = TRUE))