创建一个包含5个随机采样观测值的平均值的数据框

cliftjc1

我目前正在阅读“面向数据科学家的实用统计学”,并在R中演示一些代码,并在其中关注。我特别努力遵循其中的一小部分代码,并希望有人能提供帮助。有问题的代码正在创建一个具有1000行的数据框,其中每个观察值都是从该数据框中随机抽取5个收入值的平均值loans_income但是,我对代码的逻辑感到困惑,因为它的tapply()功能和嵌套rep()语句相当复杂

创建相关数据框的代码如下:

samp_mean_5 <- data.frame(income = tapply(sample(loans_income$income,1000*5),
                                          rep(1:1000,rep(5,1000)),
                                          FUN = mean),
           type='mean_of_5')

特别是,我对嵌套rep()语句和函数1000*5部分感到困惑sample()任何帮助理解代码的逻辑将不胜感激!

作为参考,原始数据集loans_income仅包含一个具有50,000个收入值的列。

马丁·加尔

您在单个向量中有50,000个loan_income。让我们分解一下代码:

tapply(sample(loans_income$income,1000*5),
       rep(1:1000,rep(5,1000)),
       FUN = mean)

我将用10代替1000,用随机数代替收入,因此更容易解释。我也进行了设置,set.seed(1)以便可以再现结果。

  1. sample(loans_income$income,1000*5)
    我们从您的媒介中随机抽取50笔收入,而无需进行替换。它们(暂时)被放入长度为50的向量中,因此输出如下所示:
> sample(runif(50000),10*5)
 [1] 0.73283101 0.60329970 0.29871173 0.12637654 0.48434952 0.01058067 0.32337850
 [8] 0.46873561 0.72334215 0.88515494 0.44036341 0.81386225 0.38118213 0.80978822
[15] 0.38291273 0.79795343 0.23622492 0.21318431 0.59325586 0.78340477 0.25623138
[22] 0.64621658 0.80041393 0.68511759 0.21880083 0.77455662 0.05307712 0.60320912
[29] 0.13191926 0.20816298 0.71600799 0.70328349 0.44408218 0.32696205 0.67845445
[36] 0.64438336 0.13241312 0.86589561 0.01109727 0.52627095 0.39207860 0.54643661
[43] 0.57137320 0.52743012 0.96631114 0.47151170 0.84099503 0.16511902 0.07546454
[50] 0.85970500
  1. rep(1:1000,rep(5,1000))
    现在我们创建一个长度为50的索引向量:
> rep(1:10,rep(5,10))
[1]  1  1  1  1  1  2  2  2  2  2  3  3  3  3  3  4  4  4  4  4  5  5  5  5  5  6  6  6
[29]  6  6  7  7  7  7  7  8  8  8  8  8  9  9  9  9  9 10 10 10 10 10

这些索引将步骤1中的样本“分组”。因此,基本上,此向量告诉R您“样本向量”的前5个条目一起属于(索引1),接下来的5个条目一起属于(索引2),依此类推。

  1. FUN = mean
    只需将mean-function应用于数据即可。

  2. tapply
    因此,tapply获取采样数据(sample-part)并按第二个参数(rep()-part)将其分组,然后将-function应用于mean每个组。

如果您熟悉data.frames和dplyr包,请看一下(仅显示前10行):

set.seed(1)
df <- data.frame(income=sample(runif(5000),10*5), index=rep(1:10,rep(5,10)))
       income index
1  0.42585569     1
2  0.16931091     1
3  0.48127444     1
4  0.68357403     1
5  0.99374923     1
6  0.53227877     2
7  0.07109499     2
8  0.20754511     2
9  0.35839481     2
10 0.95615917     2

我在随机数(您的income)上附加了一个索引现在我们计算每组的平均值:

df %>% 
  group_by(index) %>%
  summarise(mean=mean(income))

这给了我们

# A tibble: 10 x 2
   index  mean
   <int> <dbl>
 1     1 0.551
 2     2 0.425
 3     3 0.827
 4     4 0.391
 5     5 0.590
 6     6 0.373
 7     7 0.514
 8     8 0.451
 9     9 0.566
10    10 0.435

比较一下

set.seed(1)
tapply(sample(runif(5000),10*5),
       rep(1:10,rep(5,10)),
       mean)

产生基本上相同的结果:

        1         2         3         4         5         6         7         8         9 
0.5507529 0.4250946 0.8273149 0.3905850 0.5902823 0.3730092 0.5143829 0.4512932 0.5658460 
       10 
0.4352546

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有上一个和下一个数据值的d3.js移动平均值

来自分类Dev

矩阵:创建一个矩阵,其中包含3个矩阵的所有元素的平均值

来自分类Dev

使用2个数据框计算和绘制预测并在一个数据框中存储平均值

来自分类Dev

创建一个表格以显示python的平均值

来自分类Dev

如何创建一个查询来计算计算列的平均值

来自分类Dev

如何为包含最多5个时间相关成员的每个分区创建平均值?

来自分类Dev

用数据字段中NA值的字段的上一个和下一个可用值的平均值替代

来自分类Dev

创建一个MySQL视图以获取计数列的平均值

来自分类Dev

熊猫数据框通过两个值的平均值填充nan

来自分类Dev

如果列包含另一个数据框中指定的字符串,则从数据框中的列获取平均值

来自分类Dev

熊猫数据框的平均值具有两个分组依据:一个按月份,另一个按参数

来自分类Dev

如何对一个数据帧进行三个月的平均值,并使用这些值构建一个新的?

来自分类Dev

根据来自另一个数据框的值查找数据框值的平均值

来自分类Dev

最多X个值的平均值,又取最后一个值的平均值?

来自分类Dev

在数据框中添加一列,其中将包括特定数量的观测值的频率平均值

来自分类Dev

如何在一个列中具有相似值的pandas数据框中合并行以产生其平均值?

来自分类Dev

熊猫:在一个数据框中交换特定的列值,并计算其加权平均值

来自分类Dev

我有一个性别,班级和年龄的数据框。我需要一个结果表,该表按性别和阶级给出年龄平均值,平均值与观察值的差异

来自分类Dev

字典中上一个和下一个值的平均值

来自分类Dev

创建一个表格以显示python的平均值

来自分类Dev

创建一个循环来计算不同滚动平均值长度的矢量的滚动平均值

来自分类Dev

矩阵:创建一个矩阵,其中包含3个矩阵的所有元素的平均值

来自分类Dev

获取最近5周的数据,如果一个星期包含多个记录,则取其平均值

来自分类Dev

用变量平均值的ggplot绘制直方图,以另一个变量的观测值为函数

来自分类Dev

R:如何为每种因素组合创建一个观测值的数据框

来自分类Dev

在 Tableau 中创建一个大平均值

来自分类Dev

如何创建一个函数来计算和返回平均值、最大值和最小值?

来自分类Dev

查找数据框中每一列的平均值,按列分组,不包括一个值

来自分类Dev

用另一个数据框中同名列的平均值替换一个数据框中的零值列

Related 相关文章

  1. 1

    带有上一个和下一个数据值的d3.js移动平均值

  2. 2

    矩阵:创建一个矩阵,其中包含3个矩阵的所有元素的平均值

  3. 3

    使用2个数据框计算和绘制预测并在一个数据框中存储平均值

  4. 4

    创建一个表格以显示python的平均值

  5. 5

    如何创建一个查询来计算计算列的平均值

  6. 6

    如何为包含最多5个时间相关成员的每个分区创建平均值?

  7. 7

    用数据字段中NA值的字段的上一个和下一个可用值的平均值替代

  8. 8

    创建一个MySQL视图以获取计数列的平均值

  9. 9

    熊猫数据框通过两个值的平均值填充nan

  10. 10

    如果列包含另一个数据框中指定的字符串,则从数据框中的列获取平均值

  11. 11

    熊猫数据框的平均值具有两个分组依据:一个按月份,另一个按参数

  12. 12

    如何对一个数据帧进行三个月的平均值,并使用这些值构建一个新的?

  13. 13

    根据来自另一个数据框的值查找数据框值的平均值

  14. 14

    最多X个值的平均值,又取最后一个值的平均值?

  15. 15

    在数据框中添加一列,其中将包括特定数量的观测值的频率平均值

  16. 16

    如何在一个列中具有相似值的pandas数据框中合并行以产生其平均值?

  17. 17

    熊猫:在一个数据框中交换特定的列值,并计算其加权平均值

  18. 18

    我有一个性别,班级和年龄的数据框。我需要一个结果表,该表按性别和阶级给出年龄平均值,平均值与观察值的差异

  19. 19

    字典中上一个和下一个值的平均值

  20. 20

    创建一个表格以显示python的平均值

  21. 21

    创建一个循环来计算不同滚动平均值长度的矢量的滚动平均值

  22. 22

    矩阵:创建一个矩阵,其中包含3个矩阵的所有元素的平均值

  23. 23

    获取最近5周的数据,如果一个星期包含多个记录,则取其平均值

  24. 24

    用变量平均值的ggplot绘制直方图,以另一个变量的观测值为函数

  25. 25

    R:如何为每种因素组合创建一个观测值的数据框

  26. 26

    在 Tableau 中创建一个大平均值

  27. 27

    如何创建一个函数来计算和返回平均值、最大值和最小值?

  28. 28

    查找数据框中每一列的平均值,按列分组,不包括一个值

  29. 29

    用另一个数据框中同名列的平均值替换一个数据框中的零值列

热门标签

归档