автоматически вычисляя среднее значение и значение st dev для кратных кадров данных и исключая первый столбец в каждом - PullRequest
0 голосов
/ 24 марта 2019

Я принципиально новичок в R, но мне нужно подготовить несколько графиков для моей диссертации.

Я работаю с гиперспектральными данными, для которых я экспортировал csvs, содержащие группы сканов.Я взял сотни чтений, и даже когда спектры сгруппированы, это создает много отдельных файлов CSV.

В каждом csv ось x находится в первом столбце, а каждый следующий столбец содержит интенсивности для независимых спектров.количество столбцов зависит от количества сканирований в этой группе.

Я пытаюсь создать новые столбцы в каждом фрейме данных, которые соответствуют среднему и st dev.

Я также хотел бы создать еще один фрейм данных, который вытягивает новые столбцы среднего и st dev и помещает их в новый фрейм данных.

1 Ответ

0 голосов
/ 24 марта 2019

Без воспроизводимого примера невозможно протестировать приведенный ниже код, но я бы сделал что-то подобное:

old_dir <- setwd("path/to/dir")
filenames <- list.files(pattern = "\\.csv")
df_list <- lapply(filenames, read.csv)

df_list <- lapply(df_list, function(DF){
  DF[["Mean"]] <- rowMeans(DF[-1], na.rm = TRUE)
  DF[["StdErr"]] <- apply(DF[-1], 1, sd, na.rm = TRUE)
  DF
})

new_list <- lapply(df_list, function(DF){
  data.frame(Mean = DF[["Mean"]], StdErr = DF[["StdErr"]])
})

setwd(old_dir)

Обратите внимание, что new_list является объектом класса "list".Вы просите новый data.frame со средствами и SD.Если исходные файлы не имеют одинаковое количество столбцов и строк, это невозможно.

...