решаемые
pheno_vector = c("PAX5+PDL1-", "CD3+CD8+PD1-", "CD3+CD8-PD1+")
n = length(pheno_vector)
for (i in 1:(n-1)){
for (j in (i+1):n){
pheno1 = pheno_vector[i]
pheno2 = pheno_vector[j]
pairs = list(c(pheno1, pheno2))
colors = c("cyan", "magenta")
names(colors) = c(pheno1,pheno2)
print(colors)
производит
PAX5+PDL1- CD3+CD8+PD1-
"cyan" "magenta"
PAX5+PDL1- CD3+CD8-PD1+
"cyan" "magenta"
CD3+CD8+PD1- CD3+CD8-PD1+
"cyan" "magenta"
У меня проблема с созданием именованного списка, в котором имена должны иметь возможность многократного изменения, но должны быть вставлены для визуального построения.
Я работаю с данными Vectra Imaging, связанными с фенотипами клеток.
Поскольку существует несколько фенотипов, я хочу итеративно создавать пары фенотипов, чтобы визуально составлять графики, как показано в примере в https://rdrr.io/github/PerkinElmer/phenoptr/man/spatial_distribution_report.html
В настоящее время мой код, адаптированный к моим данным, выглядит следующим образом
pheno1 = "PAX5+PDL1-"
pheno2 = "CD3+CD8+PD1-"
pairs = list(c("PAX5+PDL1-", "CD3+CD8+PD1-"))
colors = c('PAX5+PDL1-'="cyan", 'CD3+CD8+PD1-'="magenta")
colors
Это возвращает
> PAX5+PDL1- CD3+CD8+PD1-
> "cyan" "magenta"
Пары и цвета используются для составления графиков. Теперь я хочу итеративно составить графики для большего количества пар фенотипов, которые у меня есть в данных. В конце я хотел бы использовать цикл for для pheno1 и цикл for для pheno2, полученный из общего фенотипического вектора pheno_vector, который содержит.
То, что я пробовал, это
pheno1 = "PAX5+PDL1-"
pheno2 = "CD3+CD8+PD1-"
pairs = list(c(pheno1, pheno2))
colors = c(pheno1="cyan", pheno2="magenta")
colors
Который возвращает
> pheno1 pheno2
> "cyan" "magenta"
Я понимаю, почему я вижу pheno1 и pheno2, а не "PAX5 + PDL1-" и "CD3 + CD8 + PD1-".
Я попробовал некоторые методы вставки и eval, как в Создать имя переменной с «вставкой» в R? , но это не сработало.
Assign("PAX5+PDL1-", "cyan")
не сработает, так как я не знаю, как превратить его в именованный список.
В конце я хотел бы получить это в результате
pheno_vector = c("PAX5+PDL1-", "CD3+CD8+PD1-", "CD3+CD8-PD1+")
for (pheno1 in pheno_vector){
for (pheno2 in pheno_vector){
if (uniqueness_statement and permutation_statement){
pairs = list(c(pheno1, pheno2))
colors = c(pheno1="cyan", pheno2="magenta")
colors
Который должен вернуть
> PAX5+PDL1- CD3+CD8+PD1-
> "cyan" "magenta"
> PAX5+PDL1- CD3+CD8-PD1+
> "cyan" "magenta"
> CD3+CD8+PD1- CD3+CD8-PD1+
> "cyan" "magenta"
Так что это списки с конкретными именами, которые они должны использовать для последующего построения.
У кого-нибудь есть решение для этого?