Создать скрипт с 2 векторами в R - PullRequest
0 голосов
/ 26 февраля 2019

Я использую Heatmap из пакета complexheatmap

в скрипте, мне нужно создать переменную ha_column, которую я включу в мой скрипт.

ha_column = HeatmapAnnotation (df = data.frame(type1=c(rep("name1",5), rep("name2",5),rep("name3",5), col = list(type1=c("name1" =  "#DCDCDC", "name2" = "#DC928B", "name2"="#BA72D3")))))

У меня есть 2 вектора:

vectors1=c("name1","name2","name3)
vectors2=c("#DCDCDC","#DC928B","#BA72D3")

, и идея состоит в том, чтобы воспроизвести вышеуказанный скрипт с этими двумя векторами.

Я пытался:

paste0("ha_column = HeatmapAnnotation(df = data.frame(type1 = c(rep(",vectors1,", 5),col = list(type1 = c(",vectors1,"=",vectors2,")))")

но он вставляет только строку за строкой, например:

[1] "ha_column = HeatmapAnnotation(df = data.frame(type1 = c(rep(name1, 5),col = list(type1 = c(name1=#DCDCDC)))"                   
[2] "ha_column = HeatmapAnnotation(df = data.frame(type1 = c(rep(name2, 5),col = list(type1 = c(name2=#DC928B)))"
[3] "ha_column = HeatmapAnnotation(df = data.frame(type1 = c(rep(name3, 5),col = list(type1 = c(name3=#BA72D3)))"       

вместо того, чтобы делать то, что я хочу ...

У кого-нибудь есть идея?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 26 февраля 2019

Как правило, не рекомендуется создавать код в виде строки.Вместо этого подумайте о создании функции, которая делает то, что вы хотите.

Вы можете сделать что-то строковое

ha_column_fun = function(names, colors) {
    HeatmapAnnotation(
      df = data.frame(type1 = rep(names, each=5)), 
      col = list(type1=setNames(colors, names))
    )
}

И затем вы можете вызвать ее с помощью

ha_column = ha_column_fun(vectors1, vectors2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...