gpt4 book ai didi

r - 根据两列的条件求平均值

转载 作者:行者123 更新时间:2023-12-04 10:36:07 26 4
gpt4 key购买 nike

foo = data.frame(V1=c(rep("A",4),"B",rep("C",3),"D","D"), 
V2=c(rep("1",3), rep("2",2),
"1", rep("3",2), rep("2",2)),
V3=c(1.2,1.4,1.3,1.5,1.6,1.2,1.1,1,1.3,1.4),
V4=c(2.2,2.4,2.3,2.5,2.6,2.2,2.1,2,2.3,2.4),
V5=c(3.2,3.4,1.3,3.5,1.6,3.2,1.1,1,3.3,3.4))

结果将保留 V1 和 V2 的唯一组合以及每列 V3-V5 的平均值。示例均值 (1.2,1.4,1.3) = 1.3

 foo
V1 V2 V3 V4 V5
1 A 1 1.3 2.2 3.2
2 A 2 1.5 2.5 3.5
3 B 2 1.6 2.6 1.6
4 C 1 1.2 2.2 3.2
5 C 3 1.1 2.1 1.1
6 D 2 1.3 2.3 3.3

最佳答案

您可以使用聚合函数之一。

library(dplyr)
foo %>%
group_by(V1, V2) %>%
summarise_each(funs(mean))

或者

 library(data.table)#v1.9.4+
setDT(foo)[,lapply(.SD, mean) , by =.(V1, V2)]

或者

 library(sqldf)
nm1 <- toString(sprintf("avg(%s) as %s",
names(foo)[3:ncol(foo)], names(foo)[3:ncol(foo)]))
fn$sqldf('select V1, V2, $nm1
from foo
group by V1, V2')

或者使用base R

 aggregate(.~V1+V2, foo, mean)

关于r - 根据两列的条件求平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com