R中xtabs()表内的数学运算

时间:2015-12-17 17:36:26

标签: r

如何将表中的两个因子级别相加?例如,我想在这种情况下对versicolor + virginica求和......

t1 <- xtabs(~Species, iris)

> t1
# Species
#    setosa versicolor  virginica 
#        50         50         50 

然后删除杂色和维吉尼亚,留下新的水平&#34; sumV&#34;及其价值。

2 个答案:

答案 0 :(得分:3)

我们可以transform通过更改&#39; versicolor&#39;和&#39; virginica&#39;来更新数据集。一个新的价值&#39; sumV&#39;然后执行xtabs

xtabs(~Species,transform(iris, Species= c('setosa', 
           'sumV')[(Species %in% c('versicolor', 'virginica'))+1L]))
#Species
#setosa   sumV 
#    50    100 

或者@Ananda Mahto建议,我们可以将replacegrep

一起使用
xtabs(~ Species, transform(iris, Species = 
  replace(as.character(Species), grepl("^v", Species), "sumV")))

答案 1 :(得分:3)

t1 <- xtabs(~Species, iris)

#Species
#    setosa versicolor  virginica 
#        50         50         50 

然后将您想要的值相加并将它们分配到一个新的级别:

t1["sumV"]  = t1["versicolor"] + t1["virginica"]

#    setosa versicolor  virginica       sumV
#        50         50         50        100 

最后删除您不想保留的值:

t1[-c(2,3)]

#setosa   sumV 
#    50    100