在R中对多行进行分组

时间:2014-10-19 19:54:51

标签: mysql r grouping rows

我使用以下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

1 个答案:

答案 0 :(得分:1)

因为rownames是必需品,R中唯一优秀的范围操作符是&#34;:&#34;对于数值:您需要将范围强制转换为所需的"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)
              )