gpt4 book ai didi

python - 基于R中列均值的简单索引计算

转载 作者:行者123 更新时间:2023-12-01 12:02:59 24 4
gpt4 key购买 nike

我有一个包含大约 10 列的数据框。都是数字类型,表示不同的地理区域。有些是相对值,例如具有一定程度的居民的百分比,有些是总值,例如总人口。它或多或少像这样:

median_age bachelor_rate  emp_rate                       
1 35.2 0.05223252 0.6185185
2 22.5 0.40045249 0.7744094
3 36.3 0.26750261 0.8210526
4 36.8 0.07753825 0.5801861
5 29.9 0.04805492 0.3593074
6 26.8 0.00000000 0.4762367
>

我想做的是为每一列计算一个“索引”。我想我会取每列的平均值,然后计算每个单元格值的平均值的差异。median_age-column 第一个单元格的 E.G:

mean_age = mean(df$mean_age)
median_age_1 = df$median_age[1]
index = median_age_1/mean_age

除了所有数学和索引相关的问题。我如何编写一个函数来为所有列和所有单元格执行此操作?

最佳答案

如果您选择使用 R,我认为以下是一种方法。 mutate_all() 所做的是遍历所有列并执行完全相同的工作。所以你想认为 . 成为每个列的名称,而 R 正在循环数据。对于每一列,您可以使用 mean() 找到平均值。由于您想将每列中的每个值除以其平均值,您可以将想法表达为 ~./mean(.)。因为我给这个函数加了一个名字。 R 创建了三个新列。如果要覆盖原始列,可以执行以下操作:mutate_all(mydf, .funs = list(~./mean(.)))

library(dplyr)

mutate_all(mydf, .funs = list(index = ~./mean(.)))

median_age bachelor_rate emp_rate median_age_index bachelor_rate_index emp_rate_index
1 35.2 0.05223252 0.6185185 1.1264 0.3705394 1.0224261
2 22.5 0.40045249 0.7744094 0.7200 2.8408247 1.2801176
3 36.3 0.26750261 0.8210526 1.1616 1.8976733 1.3572199
4 36.8 0.07753825 0.5801861 1.1776 0.5500592 0.9590617
5 29.9 0.04805492 0.3593074 0.9568 0.3409034 0.5939439
6 26.8 0.00000000 0.4762367 0.8576 0.0000000 0.7872308

数据

mydf <- structure(list(median_age = c(35.2, 22.5, 36.3, 36.8, 29.9, 26.8
), bachelor_rate = c(0.05223252, 0.40045249, 0.26750261, 0.07753825,
0.04805492, 0), emp_rate = c(0.6185185, 0.7744094, 0.8210526,
0.5801861, 0.3593074, 0.4762367)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))

关于python - 基于R中列均值的简单索引计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60135827/

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