计算存储在列表中的多个数据框列的平均值

安德烈斯·冈萨雷斯(Andres Gonzalez)

我正在做一些模拟,并且我有几个具有相同列的数据框存储在列表中。对于每个数据框,我想创建一个新变量,该变量具有之前2个数据框(以及当前数据框)中每一列的平均值。我在制定循环时遇到问题。这是一个可重现的示例:

#Create dataframe 
month <- 1:12
price <- 21:32
df <- data.frame(month, price)

#Separate each row and create a simulation of a new variable. Store new dataframes in a list
simulations <- 100
ints <- seq_len(12)
set.seed(96)
list <- lapply(setNames(ints, paste0("df", ints)), function(i) {
  cbind(
    df[rep(i, simulations),],
    q = as.numeric(runif(simulations, min = 5, max = 10)))
})

#for each df in list, calculate the mean of the last 3 values of q 
for (i in 3:length(list)) {
  list[[i]][["q_mean"]] <- mean(list[[(i-2):i]][["q"]]) #HERE IS THE PROBLEM
  list[[i]][["ben"]] <- list[[i]][["q_mean"]]*list[[i]][["price"]]
}

我收到“列表错误[[((i-2):i]] [[“ q”]]:下标超出范围”。有谁知道可能是什么问题?提前致谢!

雷达拉

我注意到有两件事在这里给您带来麻烦:

1-当您像list[[1:3]]这样对列表进行子集设置时,将其读取为list[[c(1, 2, 3)]],并在列表的第一个元素(df1)中找到第二列(价格)的第三个条目(21)。这就是为什么执行list [1:2]之类的操作会返回一个向量(它提取出一个完整的变量)的原因,以及为什么list [1:4]会返回一个错误(列表的深度未达到4级)的原因。(通过评论@ aaron-montgomery回答)

2-在最后一行中,引用了mean从未定义的列

如果要获取一个值,该值是所有先前元素的平均值,则可以嵌套另一个循环:

#for each df in list, calculate the mean of the last 3 values of q 
for (i in 3:length(list)) {

  # add another loop to calculate the mean
  vals <- c()
  for (j in (i - 2):i) {
    vals <- c(vals, list[[j]]$q)
  }
  
  list[[i]][["q_mean"]] <- mean(vals)
  
}

如果您希望每行使用不同的值(其中row1是前两个row1的平均值,等等),则可以执行以下操作:

for (i in 3:length(list)) {
  
  list[[i]][["q_mean"]] <- (list[[i - 1]]$q + list[[i - 2]]$q) /2
  
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数据列表中计算平均值

来自分类Dev

在计算由Pandas创建的数据框中的列的平均值时指定“跳过NA”

来自分类Dev

SAS查找多个数据集的平均值

来自分类Dev

计算多个数据帧的平均值?

来自分类Dev

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

来自分类Dev

根据单独列中的位置计算数据框中的平均值

来自分类Dev

计算数据框中两列的平均值

来自分类Dev

如何基于日期列与R中的Missind数据计算数据框中多个列的月平均值

来自分类Dev

具有相同列和索引的多个数据框的平均值

来自分类Dev

计算R中每五个变量的数据框列的平均值

来自分类Dev

在列表的每个数据框中添加一行,其中包含某些行的平均值

来自分类Dev

通过取无ID的平均值列合并两个数据框

来自分类Dev

使用条件计算数据框中列的平均值

来自分类Dev

R中具有相同列模式的多个数据帧的平均值

来自分类Dev

计算两个数据框中一列的平均值,然后在带有特定标签的条形图中绘制每个数据框的平均值?

来自分类Dev

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

来自分类Dev

数据框中列的平均值?

来自分类Dev

SAS查找多个数据集的平均值

来自分类Dev

找到两个数据框的交集并计算该数据框中整数行的平均值

来自分类Dev

数据框中列的几何平均值

来自分类Dev

如何计算数据框中的平均值?

来自分类Dev

如何获取数据框中每列的平均值

来自分类Dev

汇总列表中数据框的平均值

来自分类Dev

计算多个数据集的日、月和年平均值

来自分类Dev

计算数据框列中每 7 个实例的平均值

来自分类Dev

使用两个数据框列的平均值生成交叉表

来自分类Dev

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

来自分类Dev

Pandas,如何使用多个分组列替换 python 数据框中的平均值

来自分类Dev

计算多个数组中每个索引的值的平均值

Related 相关文章

  1. 1

    从数据列表中计算平均值

  2. 2

    在计算由Pandas创建的数据框中的列的平均值时指定“跳过NA”

  3. 3

    SAS查找多个数据集的平均值

  4. 4

    计算多个数据帧的平均值?

  5. 5

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

  6. 6

    根据单独列中的位置计算数据框中的平均值

  7. 7

    计算数据框中两列的平均值

  8. 8

    如何基于日期列与R中的Missind数据计算数据框中多个列的月平均值

  9. 9

    具有相同列和索引的多个数据框的平均值

  10. 10

    计算R中每五个变量的数据框列的平均值

  11. 11

    在列表的每个数据框中添加一行,其中包含某些行的平均值

  12. 12

    通过取无ID的平均值列合并两个数据框

  13. 13

    使用条件计算数据框中列的平均值

  14. 14

    R中具有相同列模式的多个数据帧的平均值

  15. 15

    计算两个数据框中一列的平均值,然后在带有特定标签的条形图中绘制每个数据框的平均值?

  16. 16

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

  17. 17

    数据框中列的平均值?

  18. 18

    SAS查找多个数据集的平均值

  19. 19

    找到两个数据框的交集并计算该数据框中整数行的平均值

  20. 20

    数据框中列的几何平均值

  21. 21

    如何计算数据框中的平均值?

  22. 22

    如何获取数据框中每列的平均值

  23. 23

    汇总列表中数据框的平均值

  24. 24

    计算多个数据集的日、月和年平均值

  25. 25

    计算数据框列中每 7 个实例的平均值

  26. 26

    使用两个数据框列的平均值生成交叉表

  27. 27

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

  28. 28

    Pandas,如何使用多个分组列替换 python 数据框中的平均值

  29. 29

    计算多个数组中每个索引的值的平均值

热门标签

归档