R语言绘制曼哈顿图给染色体分配颜色
方法1:
1、利用match函数实现
> dir() [1] "dat.map" > map <- read.table("dat.map") > map ## map文件 V1 V2 1 1 55910 2 1 85204 3 1 122948 4 2 167127 5 2 176079 6 2 361433 7 3 144010 8 3 199910 9 3 234281 > col <- c("red", "black", "purple") ## 备用颜色 > names(col) <- 1:3 > col 1 2 3 "red" "black" "purple" > idx <- match(map$V1, names(col)) ## 构建颜色索引 > map$col <- col[idx] ## 分配颜色 > map V1 V2 col 1 1 55910 red 2 1 85204 red 3 1 122948 red 4 2 167127 black 5 2 176079 black 6 2 361433 black 7 3 144010 purple 8 3 199910 purple 9 3 234281 purple
2、方法2,利用for循环 + if判断实现
> dir() [1] "dat.map" > map <- read.table("dat.map") > map ## map文件 V1 V2 1 1 55910 2 1 85204 3 1 122948 4 2 167127 5 2 176079 6 2 361433 7 3 144010 8 3 199910 9 3 234281 > col <- c("red", "black", "cyan") ## 备用颜色 > for (i in 1:3) { ## 利用二重for循环 + if语句实现 + for (j in 1:nrow(map)) { + if (map[,1][j] == i) { + map$col[j] = col[i] + } + } + } > map V1 V2 col 1 1 55910 red 2 1 85204 red 3 1 122948 red 4 2 167127 black 5 2 176079 black 6 2 361433 black 7 3 144010 cyan 8 3 199910 cyan 9 3 234281 cyan