如何遍历文本文件,找到每个文件的平均值,并将其存储在 R 中的数据框中?
How to loop through text files, find the average of each, and store it in a dataframe in R?
我有 500 个文本文件,每个文件都有不同的 header 和不同的数字列,在我想执行以下操作的目录中:
- 计算每个文件的平均值
- 将其存储到数据框中的新行中
- 对所有文件重复
要读取我使用的文件名:
#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
我有 500 个文本文件,每个文件都有不同的 header 和不同的数字列,在我想执行以下操作的目录中:
- 计算每个文件的平均值
- 将其存储到数据框中的新行中
- 对所有文件重复
要读取我使用的文件名:
#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