Вот структура фрейма данных, с которой я работаю:
> str(final.c)
'data.frame': 218916 obs. of 7 variables:
$ strain : chr "CX11285" "ED3048" "JU1200" "CX11315" ...
$ row : Factor w/ 8 levels "A","B","C","D",..: 1 1 1 1 1 1 2 2 2 2 ...
$ col : Factor w/ 12 levels "1","2","3","4",..: 1 3 5 7 9 11 1 3 5 7 ...
$ variable: Factor w/ 79 levels "n","meanTOF",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value : num 312 697 159 381 175 110 324 198 179 375 ...
$ L1 : int 1 1 1 1 1 1 1 1 1 1 ...
$ set : num 1 1 1 1 1 1 1 1 1 1 ...
Вот пример гистограммы, сгенерированной ggplot:
var <- "norm.n"
plate <- c(1,5)
dat <- final.c
day <- 1
plot <- ggplot(subset(dat, variable %in% var & L1 %in% plate & set %in% day),
aes(value, fill = factor(L1))) + geom_histogram()
На приведенном выше графике рассматривается подмножество этого большого расплавленного data.frame (я говорю, что он расплавлен, потому что я запускал расплав в списке data.frames до «final.c»). В частности, это подмножество, когда установлено = 1 и когда переменная = "norm.n" и когда L1 = 1 или 5. Это создает две гистограммы, которые я разделяю по цветам.
Что я хотел бы сделать, так это разработать функцию, которая генерирует несколько графиков. Графики будут включать: Гистограммы, отображающие «планшеты» (L1 в final.c) от 1 до планшетов 5-30 для каждой переменной (переменная в final.c). Это также должно быть сгруппировано по набору, которых 2 (набор 1 и набор 2).
Таким образом, получится 26 (количество сравнений планшетов) X 80 (количество переменных в final.c) = 2080 графиков. Я подмножу список переменных, чтобы сделать графики более управляемыми, но идея должна быть той же.
Ради вопроса давайте просто назовем переменные в этом примере v1...v80
Спасибо за любую помощь, я буду периодически проверять все, что может быть неясным.
ИЗМЕНИТЬ ::
Следуя предложению в комментариях, я сделал простой цикл for для создания графиков для сравнения каждой пластины (L1 в final.c), он выглядит следующим образом:
for(i in 5:10){
var <- "norm.n"
plate <- c(1, i)
dat <- final.c
day <- 1
plot <- ggplot(subset(dat, variable %in% var & L1 %in% plate & set %in% day),
aes(value, fill = factor(L1))) + geom_histogram()
setwd("~/Dropbox/Andersen lab/LabFolders/Stefan/testplots/")
ggsave(filename = paste(var, i, ".jpg", sep = ""), plot = plot, height=4, width=8, units="in", dpi=300)
}
Это дает мне 6 графиков гистограмм, сравнивающих два разных значения L1 из final.c. Я могу легко расширить это, чтобы сделать все сравнения пластин (например, для (i в 5:30)).
Вот и остался вопрос - Как зациклить по пластинам и одновременно по переменным. Столбец «переменная» в файле final.c представляет собой набор факторов с 79 уровнями. То, что я хотел бы сделать, это перебрать эти факторы, но я не уверен, как это сделать. Как показано ниже:
for(i in 5:10){
var <- ***LOOP THROUGH VARIABLES COLUMN IN final.c***
plate <- c(1, i)
dat <- final.c
day <- 1
Я просто не уверен в синтаксисе этого.
for
, чтобы просмотреть наборы тарелок, которые вы хотите отобразить? Попробуйте разбить проблему на части и решать их по очереди. - person Gregor Thomas   schedule 01.04.2014