У меня есть большая таблица данных, содержащая метаданные, такие как различные виды лечения наркотиками для образцов при различных условиях и числа c особенности измерений.
Мини-набор фиктивных данных:
#I only used one sample here for simplicity. You can image there are multiple sample IDs
#and sometimes the same ID but different timestamp.
#for each sample, the sample will have 3 levels conditions,
#for each treatment(here's only 1, R), multiple dosages per condition
#on top of the condition&dose there is next layer to have combo or not.
#from id ~combo they are factors or at least I believe so
#after all these, the real measured variables V1,2.....
set.seed(123)
id <- rep("S112",30)
timestamp <- rep("T4",30)
condit <- rep(c("uns","2S","3S"), 10)
treatment <- rep("R", 30)
dose <- rep(c("0.1","1"),each=15)
combo <-rep(c("none","I10","I100"),each=10)
v1 <-rnorm(30,0.5)
v2 <-rnorm(30,0.05)
v3 <-rnorm(30,0.1)
df <- data.frame(id,timestamp,condit,treatment,dose,combo,v1,v2,v3)
сейчас если я могу визуализировать одно лечение R, в разных условиях и в разных дозировках и даже в комбинации.
#import libs
library(ggplot2)
library(dplyr)
library(tidyr)
library(wesanderson) #I have great movie taste I know
# now I look at treatment of interest
R <- df[df$treatment=="R" & df$combo == "I10",]
#table to long
R_long <- gather(R,7:9, key = bin, value = value, -id, -timestamp, -condit )
#plot it
b<- ggplot(R_long, aes(x=bin, y=id,fill=value))
pal <- wes_palette("Zissou1", 100, type = "continuous")
R_map <- b +
geom_tile()+
scale_fill_gradientn(colors=pal)+
facet_grid(dose~condit)+
theme(text = element_text(size = 40,face="bold")) +
theme(legend.text = element_text(size=35, face="bold"))+
theme(axis.text.x = element_text(angle=45, hjust=1)) +
theme(legend.key.size = unit(2, "cm"))+
xlab("Bins")+
ylab("Sample ID")+
ggtitle("Plot of treatment R")
ggsave(R_map,file="R.pdf",width=30,height=30)
Это работает, но я хочу выполнить то же самое для группы лекарств в реальном наборе данных, вместо одного лечения R. Я предполагаю, что векторизованный язык R должен позволять что-то вроде группы обработки, которые я хочу в векторе c (R1, R2, R3, R4) и применить вышеупомянутый код к этому вектору. Как я могу этого достичь?
Примечание: извините за этот плохо сформулированный вопрос. Честно говоря, я слишком умный, чтобы даже задавать ключевые вопросы. Поэтому не стесняйтесь помочь мне отредактировать это (часть COVID для хорошего духа)
Спасибо