R 求一个变量的平均值,取决于另一个变量,该变量由第三个变量分组
我是业余爱好者。我有一个数据集,我想找到白天和夜间每个观察行为的平均值(小时)。下面是示例 时期 行为 小时 白天 行走 3.5 白天 常设的 2. 夜 放牧 5. 夜 说谎 4.5R 求一个变量的平均值,取决于另一个变量,该变量由第三个变量分组,r,grouping,mean,R,Grouping,Mean,我是业余爱好者。我有一个数据集,我想找到白天和夜间每个观察行为的平均值(小时)。下面是示例 时期 行为 小时 白天 行走 3.5 白天 常设的 2. 夜 放牧 5. 夜 说谎 4.5 您可以使用以下解决方案: library(dplyr) df %>% group_by(Period, Behaviour) %>% summarise(avg = mean(Hours, na.rm = TRUE)) # A tibble: 4 x 3 # Groups: Period
您可以使用以下解决方案:
library(dplyr)
df %>%
group_by(Period, Behaviour) %>%
summarise(avg = mean(Hours, na.rm = TRUE))
# A tibble: 4 x 3
# Groups: Period [2]
Period Behaviour avg
<chr> <chr> <dbl>
1 Day Standing 2
2 Day Walking 3.5
3 Night Grazing 5
4 Night Lying 4.5
您可以使用以下解决方案:
library(dplyr)
df %>%
group_by(Period, Behaviour) %>%
summarise(avg = mean(Hours, na.rm = TRUE))
# A tibble: 4 x 3
# Groups: Period [2]
Period Behaviour avg
<chr> <chr> <dbl>
1 Day Standing 2
2 Day Walking 3.5
3 Night Grazing 5
4 Night Lying 4.5
或者我们可以使用
data.table
library(data.table)
setDT(df)[, .(avg = mean(Hours, na.rm = TRUE)), .(Period, Behaviour)]
或者我们可以使用
data.table
library(data.table)
setDT(df)[, .(avg = mean(Hours, na.rm = TRUE)), .(Period, Behaviour)]
太好了!非常感谢你帮助我,我很高兴。代码的唯一问题是,您应该将第二个分组变量
df$Period
包含在aggregate
函数的by
参数的列表中。事实上你完全正确,我很接近。非常新的R,但享受到目前为止!再次感谢您的快速回复。非常感谢。只要充分阅读文档,这是你可以学到所有你需要的。太棒了!非常感谢你帮助我,我很高兴。代码的唯一问题是,您应该将第二个分组变量df$Period
包含在aggregate
函数的by
参数的列表中。事实上你完全正确,我很接近。非常新的R,但享受到目前为止!再次感谢您的快速回复。非常感谢。只需充分阅读文档,您就可以在这里学到您所需要的一切。