2017-09-16 111 views
0

我想根据另一列的值创建一列颜色。这很适合使用colorRampPalette,但我无法通过V6使它适用于V4;我认为,因为他们是二元的。我怎样才能得到二进制变量的彩色列?R colorRampPalette应用颜色值来创建新的'彩色'列

set.seed(123) 
md <- data.frame(
    V1 = c('link','b','c','d','e','f','g','h'), 
    V2 = sample(c('link','file'),8,replace=T), 
    V3 = 1:8, 
    v4=sample(c('Yes','No'),8,replace = T), 
    v5=sample(c('Yes','No'),8,replace = T), 
    v6=sample(c('Yes','No'),8,replace = T)) 
colfunc <- colorRampPalette(c("blue", "grey")) 
md$color <- colfunc(md$v4) 
+0

你能从V1到V3显示一些成功的输出吗? – jsb

回答

0

这就是我来了这么远:

colorRampPalette(c("blue", "grey"))(length(md$V1)) 
colorRampPalette(c("blue", "grey"))(length(unique(md$V2))) 
colorRampPalette(c("blue", "grey"))(max(md$V3)) 
colorRampPalette(c("blue", "grey"))(length(unique(md$v4))) 
colorRampPalette(c("blue", "grey"))(length(unique(md$v5))) 
colorRampPalette(c("blue", "grey"))(length(unique(md$v6))) 

所以,你所要做的是把每列略有不同,并为每列计算出一个整数值,因为:

colorRampPalette返回一个函数,它接受一个整数参数 (所需数量的颜色),并返回的 颜色的字符向量...

希望它有帮助。