簡體   English   中英

R中xtabs()表內的數學運算

[英]Mathematical operations inside a xtabs() table in R

如何將表中的兩個因子級別相加? 例如,我想在這種情況下總結versicolor + virginica ......

t1 <- xtabs(~Species, iris)

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

然后刪除versicolor和virginica,留下新級別“sumV”及其值。

我們可以通過將'versicolor'和'virginica'更改為新值'sumV'來transform數據集,然后執行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")))
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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM