У меня есть несколько фреймов данных в R, которые должны обрабатываться одинаково. Вывод необходимо распечатать в отдельных файлах. Это работает в принципе, но я не смог автоматически назначить имя каждого фрейма данных в качестве соответствующего имени файла.
Я пробовал разные подходы, но продвинулся дальше, объединив фреймы данных в список, например так:
# Load libraries
library(tidyverse)
library(pheatmap)
# Make data frames and combine in list
df1 <- data.frame("Aa" = sample(LETTERS, 5), "Bb" = 1:5, "Cc" = 3:7)
df2 <- data.frame("Aa" = sample(LETTERS, 10), "Dd" = 8:17, "Ee" = 12:21)
dflist <- list(df1, df2)
# Assign names back to data frames in list
names(dflist) <- c("df1", "df2")
# Create heatmap with each data frame and save as separate pdf file:
lapply(dflist, function(x){
x_dflist_heatmap <- column_to_rownames(x, var = "Aa")
pdf(paste0("heatmap_", x, ".pdf"))
pheatmap(x_dflist_heatmap, scale = "row", main = paste0(x))
dev.off()
})
Это дает два файла PDF с правильными тепловыми картами и очень полезными именами heatmap_c (2, 5, 1, 4, 3) .pdf и heatmap_c (3, 9, 6, 10, 5, 2, 7, 1 , 4, 8) .pdf.
Полагаю, проблема в том, что я говорю R перечислить фактический фрейм данных, а не его имя, но я не знаю, как это решить. Использование имен (x) интерпретируется как использование имен столбцов каждого фрейма данных.
Дополнительный вопрос: это менее критично, но если бы кто-то мог сообщить мне, как я могу добавить недавно сгенерированные фреймы данных, соответствующие "x_dflist_heatmap", в мою среду данных R, это было бы действительно здорово.
Спасибо за вашу помощь !!