创建迭代命名列表,变量名包括 with 运算符
creating iterative named lists, with variable names including with operators
已解决
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
这个returns
> PAX5+PDL1- CD3+CD8+PD1-
> "cyan" "magenta"
配对和颜色用于制作绘图。现在我想迭代地为我在数据中拥有的更多表型对绘制图表。最后,我想对 pheno1 进行循环,对从包含 .
的一般表型向量 pheno_vector 获得的 pheno2 进行循环
我试过的是
pheno1 = "PAX5+PDL1-"
pheno2 = "CD3+CD8+PD1-"
pairs = list(c(pheno1, pheno2))
colors = c(pheno1="cyan", pheno2="magenta")
colors
哪个returns
> pheno1 pheno2
> "cyan" "magenta"
我明白为什么我看到的是 pheno1 和 pheno2,而不是 "PAX5+PDL1-" 和 "CD3+CD8+PD1-"。
我尝试了 Create a variable name with "paste" in 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
哪个应该return
> PAX5+PDL1- CD3+CD8+PD1-
> "cyan" "magenta"
> PAX5+PDL1- CD3+CD8-PD1+
> "cyan" "magenta"
> CD3+CD8+PD1- CD3+CD8-PD1+
> "cyan" "magenta"
所以这些是专门命名的列表,它们需要用于以后的绘图。
有人对此有解决方案吗?
您可以在 colors
-vector 创建后命名它:
library(gtools)
pheno_perms <- permutations(length(pheno_vector), 2, pheno_vector)
combs <- apply(apply(pheno_perms, 1, sort), 2, paste0, collapse=' ')
pheno_perms <- pheno_perms[match(unique(combs), combs), ]
for (i in 1:nrow(pheno_perms)){
pheno1 <- pheno_perms[i, 1]
pheno2 <- pheno_perms[i, 2]
pairs = list(c(pheno1, pheno2))
colors = c("cyan", "magenta")
names(colors) <- c(pheno1, pheno2)
print(colors)
}
这会产生:
CD3+CD8-PD1+ CD3+CD8+PD1-
"cyan" "magenta"
CD3+CD8-PD1+ PAX5+PDL1-
"cyan" "magenta"
CD3+CD8+PD1- PAX5+PDL1-
"cyan" "magenta"
P.S.: 我希望我能正确解释你所说的 uniqueness_statement
和 permutation_statement
!
的意思
已解决
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
这个returns
> PAX5+PDL1- CD3+CD8+PD1-
> "cyan" "magenta"
配对和颜色用于制作绘图。现在我想迭代地为我在数据中拥有的更多表型对绘制图表。最后,我想对 pheno1 进行循环,对从包含 .
的一般表型向量 pheno_vector 获得的 pheno2 进行循环我试过的是
pheno1 = "PAX5+PDL1-"
pheno2 = "CD3+CD8+PD1-"
pairs = list(c(pheno1, pheno2))
colors = c(pheno1="cyan", pheno2="magenta")
colors
哪个returns
> pheno1 pheno2
> "cyan" "magenta"
我明白为什么我看到的是 pheno1 和 pheno2,而不是 "PAX5+PDL1-" 和 "CD3+CD8+PD1-"。 我尝试了 Create a variable name with "paste" in 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
哪个应该return
> PAX5+PDL1- CD3+CD8+PD1-
> "cyan" "magenta"
> PAX5+PDL1- CD3+CD8-PD1+
> "cyan" "magenta"
> CD3+CD8+PD1- CD3+CD8-PD1+
> "cyan" "magenta"
所以这些是专门命名的列表,它们需要用于以后的绘图。
有人对此有解决方案吗?
您可以在 colors
-vector 创建后命名它:
library(gtools)
pheno_perms <- permutations(length(pheno_vector), 2, pheno_vector)
combs <- apply(apply(pheno_perms, 1, sort), 2, paste0, collapse=' ')
pheno_perms <- pheno_perms[match(unique(combs), combs), ]
for (i in 1:nrow(pheno_perms)){
pheno1 <- pheno_perms[i, 1]
pheno2 <- pheno_perms[i, 2]
pairs = list(c(pheno1, pheno2))
colors = c("cyan", "magenta")
names(colors) <- c(pheno1, pheno2)
print(colors)
}
这会产生:
CD3+CD8-PD1+ CD3+CD8+PD1-
"cyan" "magenta"
CD3+CD8-PD1+ PAX5+PDL1-
"cyan" "magenta"
CD3+CD8+PD1- PAX5+PDL1-
"cyan" "magenta"
P.S.: 我希望我能正确解释你所说的 uniqueness_statement
和 permutation_statement
!