如何遍历文本文件,找到每个文件的平均值,并将其存储在 R 中的数据框中?

How to loop through text files, find the average of each, and store it in a dataframe in R?

我有 500 个文本文件,每个文件都有不同的 header 和不同的数字列,在我想执行以下操作的目录中:

  1. 计算每个文件的平均值
  2. 将其存储到数据框中的新行中
  3. 对所有文件重复

要读取我使用的文件名:

#read file names
Filenames <- list.files(path = "path/", 
                            pattern = "*.txt",
                            full.names = T) 

为了计算平均值并存储到目录中,我正在尝试(和 sapply)的变体:

df <- imap_dfr(Filenames, ~ vroom(.x) %>%
             summarise_if(is.numeric, mean))

但是,header 被分成几列,每一列都有自己的意思。我想在计算总文件平均值之前删除第一行 header 或忽略它。

感谢帮助。

Select 数字列,unlist 它们到一个向量并计算 mean

library(dplyr)
library(purrr)
library(vroom)

map_dbl(Filenames, ~ vroom(.x) %>% 
          select(where(is.numeric)) %>% 
          unlist %>% mean(na.rm = TRUE)) -> mean_values

mean_values