如何将表中的两个因子级别相加?例如,我想在这种情况下对versicolor + virginica求和......
t1 <- xtabs(~Species, iris)
> t1
# Species
# setosa versicolor virginica
# 50 50 50
然后删除杂色和维吉尼亚,留下新的水平&#34; sumV&#34;及其价值。
答案 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建议,我们可以将replace
与grep
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