2014-10-19 48 views
1

多行我已经生成了微生物数据R中热图,请使用以下link分组中的R

我的数据就行关注这个样子的:

781 
782 
783 
547 
519 
575 
044 
045 
049 

如果我想到组781-783,547-575及044-049作为单独的基团,并为他们使用下述想法不同的颜色:

分配动物不同组(在这种情况下2个随机组)

var1 <- round(runif(n=12, min=1, max=2)) 
var1 <- replace (var1, which(var1 == 1), "deepskyblue") 
var1 <- replace (var1, which(var1 == 2), "magenta") 
cbind(row.names(data.prop), var1) 

我该如何解决?我明白上面的代码会随机生成2组,但我怎样才能指定哪些组进入哪个组?

谢谢

Susheel

+0

你能更清楚地回答你的问题吗?你的数据不足,总体逻辑(3个非随机组vs二项随机抽样)有点不清楚。 – won782 2014-10-20 00:00:03

回答

1

因为rownames是必然的性格和唯一的良好范围内运营商在R为“:”为数值:你需要强迫范围所需"0nn"格式。这在没有正确的测试案例(询问者被要求提供)的情况下未经测试:

#look at... 
sprintf("%03i", c(781:783, 547:575, 044:049)) 
# then.... 

data.prop[ sprintf("%03i", c(781:783, 547:575, 044:049), 'var1'] <- 
     mapply(function(clr, rng) {rep(clr, length(rng))}, 
        c("deepskyblue", "magenta", "green"), 
        list( 781:783, 547:575, 44:49) 
      ) 
+0

感谢您的'sprintf'调用。你刚刚教会了一种用'0'填充字符串的新方法。 – 2014-10-20 01:09:27

+0

通常的方法是'sprintf'或'formatC'。两者都有他们的怪癖。我碰巧发现'sprintf'更容易正常工作,但其他人似乎更容易找到formatC。你的选择。 – 2014-10-20 01:11:30

+0

好吧,尤其是我指的是''%i“',但现在我看到它几乎与'”%d“'相同。阅读帮助我无法破译差异 – 2014-10-20 01:12:43