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

马尔·多里

我有一个名为my_list的数据帧列表。以下是my_list中数据框的示例。

> print(df1)    
       A          B         Names
1   0.8262825   0.734412    Baseline
2   1.0100000   0.734412    Sample1
3   0.8262825   0.734412    Sample2
4   1.0100000   0.734412    Sample3
5   0.8262825   0.734412    Sample4
6   1.0100000   0.734412    Sample5
7   0.8262825   0.734412    Sample6
8   1.0100000   0.734412    Sample7
9   0.8262825   0.734412    Sample8
10  1.0100000   0.734412    Sample9
11  0.8262825   0.734412    Sample10
12  1.0100000   NA          AASHTO

我想向my_list中的每个数据框添加一个新行,此数据帧包含列A和B的平均值,但在列名中具有“基线”和“ AASHTO”的行除外。(因此,只有Sample1到Sample10的行的均值)

最后,我想将Name列设置为my_list中每个数据框的行名,并从列表中的所有数据框中删除Names列。

my_list中每个数据框的预期结果将是

                A          B         
Baseline    0.8262825   0.734412    
Sample1     1.0100000   0.734412    
Sample2     0.8262825   0.734412    
Sample3     1.0100000   0.734412    
Sample4     0.8262825   0.734412    
Sample5     1.0100000   0.734412    
Sample6     0.8262825   0.734412    
Sample7     1.0100000   0.734412    
Sample8     0.8262825   0.734412    
Sample9     1.0100000   0.734412    
Sample10    0.8262825   0.734412
Mean        0.8156500   0.734412
AASHTO      1.0100000   NA        

非常感谢您的帮助。

阿克伦

我们可以遍历listwith lapply,获取colMeans列“ A”,“ B”的列,排除“名称”为“ Baseline”或“ AASHTO”的行,然后rbind获取原始数据集

lst2 <-  lapply(lst1, function(x) {
   means <- colMeans(x[!x$Names %in% c("Baseline", "AASHTO"),
            c('A', 'B')], na.rm = TRUE)
        d1 <- rbind(x, data.frame(Names = "Mean", as.list(means)))
        row.names(d1) <- d1$Names
        d1[setdiff(names(d1), "Names")]
             })

或使用 tidyverse

library(dplyr)
library(purrr)
library(tibble)
map(lst1, ~ .x %>%
            add_row(Names = 'Mean', 
              A = mean(.$A[!.$Names %in% c("Baseline", "AASHTO")], 
                     na.rm = TRUE),
              B = mean(.$B[!.$Names %in% c("Baseline", "AASHTO")], na.rm = TRUE)) %>%
         `row.names<-`(., NULL) %>%
             column_to_rownames('Names')) 

数据

lst1 <- list(structure(list(A = c(0.8262825, 1.01, 0.8262825, 1.01, 0.8262825, 
1.01, 0.8262825, 1.01, 0.8262825, 1.01, 0.8262825, 1.01), B = c(0.734412, 
0.734412, 0.734412, 0.734412, 0.734412, 0.734412, 0.734412, 0.734412, 
0.734412, 0.734412, 0.734412, NA), Names = c("Baseline", "Sample1", 
"Sample2", "Sample3", "Sample4", "Sample5", "Sample6", "Sample7", 
"Sample8", "Sample9", "Sample10", "AASHTO")), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12")), structure(list(
    A = c(0.8262825, 1.01, 0.8262825, 1.01, 0.8262825, 1.01, 
    0.8262825, 1.01, 0.8262825, 1.01, 0.8262825, 1.01), B = c(0.734412, 
    0.734412, 0.734412, 0.734412, 0.734412, 0.734412, 0.734412, 
    0.734412, 0.734412, 0.734412, 0.734412, NA), Names = c("Baseline", 
    "Sample1", "Sample2", "Sample3", "Sample4", "Sample5", "Sample6", 
    "Sample7", "Sample8", "Sample9", "Sample10", "AASHTO")), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12")))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算数据框中每一行的滚动平均值

来自分类Dev

计算列表框中一行的一组整数的平均值

来自分类Dev

计算包含值列表的每一行的平均值

来自分类Dev

计算每个数字列的平均值,并作为结果添加到行中

来自分类Dev

按行获取数据框列表的平均值

来自分类Dev

如何在python中的2D列表中获得一行的平均值?

来自分类Dev

如何将功能映射到列表中每个数据框的每一行?

来自分类Dev

MYSQL中每一行的平均值

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何基于Julia中一列中的值查找数据框的行的平均值?

来自分类Dev

计算每个数字列的平均值,并作为结果添加为行

来自分类Dev

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

来自分类Dev

如何获取包含缺失数字的每一行的平均值?

来自分类Dev

提取行,其中列的列表在pandas数据框中包含某些值

来自分类Dev

SQL在表的末尾添加一行和一列以显示平均值

来自分类Dev

在R中,如何为数据帧中的每一行取不同数量的元素的平均值?

来自分类Dev

在R中,如何为数据帧中的每一行取不同数量的元素的平均值?

来自分类Dev

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

来自分类Dev

从数据框中的其他行中减去 60 行的平均值

来自分类Dev

如何获取值之间的平均值,该平均值位于R中的上一行和下一行?

来自分类Dev

Pyspark滚动平均值从第一行开始

来自分类Dev

查找除第一行以外的平均值

来自分类Dev

计算列的平均值,第一行除外

来自分类Dev

将列表列表转换为数据框,其中每个列表代表一行,并保留类型

来自分类常见问题

如何找到数据库中分组列的每一行的平均值

来自分类Dev

根据唯一行名称计算数据框子集的平均值

来自分类Dev

如何找到数据库中分组列的每一行的平均值

来自分类Dev

计算表中某列的某些行的平均值

Related 相关文章

  1. 1

    计算数据框中每一行的滚动平均值

  2. 2

    计算列表框中一行的一组整数的平均值

  3. 3

    计算包含值列表的每一行的平均值

  4. 4

    计算每个数字列的平均值,并作为结果添加到行中

  5. 5

    按行获取数据框列表的平均值

  6. 6

    如何在python中的2D列表中获得一行的平均值?

  7. 7

    如何将功能映射到列表中每个数据框的每一行?

  8. 8

    MYSQL中每一行的平均值

  9. 9

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

  10. 10

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

  11. 11

    如何基于Julia中一列中的值查找数据框的行的平均值?

  12. 12

    计算每个数字列的平均值,并作为结果添加为行

  13. 13

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

  14. 14

    如何获取包含缺失数字的每一行的平均值?

  15. 15

    提取行,其中列的列表在pandas数据框中包含某些值

  16. 16

    SQL在表的末尾添加一行和一列以显示平均值

  17. 17

    在R中,如何为数据帧中的每一行取不同数量的元素的平均值?

  18. 18

    在R中,如何为数据帧中的每一行取不同数量的元素的平均值?

  19. 19

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

  20. 20

    从数据框中的其他行中减去 60 行的平均值

  21. 21

    如何获取值之间的平均值,该平均值位于R中的上一行和下一行?

  22. 22

    Pyspark滚动平均值从第一行开始

  23. 23

    查找除第一行以外的平均值

  24. 24

    计算列的平均值,第一行除外

  25. 25

    将列表列表转换为数据框,其中每个列表代表一行,并保留类型

  26. 26

    如何找到数据库中分组列的每一行的平均值

  27. 27

    根据唯一行名称计算数据框子集的平均值

  28. 28

    如何找到数据库中分组列的每一行的平均值

  29. 29

    计算表中某列的某些行的平均值

热门标签

归档