gpt4 book ai didi

r - 如何在 R 中的 data.frame 中聚合数据

转载 作者:行者123 更新时间:2023-12-05 08:14:33 25 4
gpt4 key购买 nike

我有一个很大的 data.frame。 data.frame 包含很多值。

例如:

df <- data.frame(Company = c('A', 'A', 'B', 'C', 'A', 'B', 'B', 'C', 'C'), 
Name = c("Wayne", "Duane", "William", "Rafael", "John", "Eric", "James", "Pablo", "Tammy"),
Age = c(26, 27, 28, 32, 28, 24, 34, 30, 25),
Wages = c(50000, 70000, 70000, 60000, 50000, 70000, 65000, 50000, 50000),
Education.University = c(1, 1, 1, 0, 0, 1, 1, 0, 1),
Productivity = c(100, 120, 120, 95, 88, 115, 100, 90, 120))

如何聚合我的 data.frame?我想分析每家公司的值(value)。它必须看起来像:

enter image description here

年龄->公司所有员工的平均年龄

工资->公司全体员工的平均工资

教育.大学 -> 公司所有员工的因素总和(1 或 0)

Productivity -> 公司所有员工的平均Productivity

最佳答案

基础 R

cbind(aggregate(.~Company, df[,-c(2, 5)], mean),
aggregate(Education.University~Company, df, sum)[-1])
# Company Age Wages Productivity Education.University
#1 A 27.00000 56666.67 102.6667 2
#2 B 28.66667 68333.33 111.6667 3
#3 C 29.00000 53333.33 101.6667 1

这里是更长的版本,可能更容易理解

merge(x = aggregate(x = list(Age_av = df$Age,
Wages_av = df$Wages,
Productivity_av = df$Productivity),
by = list(Company = df$Company),
FUN = mean),
y = aggregate(x = list(Education.University_sum = df$Education.University),
by = list(Company = df$Company),
FUN = sum),
by = "Company")
# Company Age_av Wages_av Productivity_av Education.University_sum
#1 A 27.00000 56666.67 102.6667 2
#2 B 28.66667 68333.33 111.6667 3
#3 C 29.00000 53333.33 101.6667 1

关于r - 如何在 R 中的 data.frame 中聚合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45699992/

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