爲什麼不簡單地做到這一點?
x <- table(model$score)
x <- x[c(1,3,5,7,9)] + x[c(2,4,6,8,10)]
names(x) <- c("1-2","3-4","5-6","7-8","9-10")
它並沒有引入額外的複雜性。
table
當然會給你一個長度爲10的矢量,因爲你有10個獨特的級別。
好吧,如果你堅持叫table()
得到你想要的結果,你需要使用cut()
對數據進行分類到不同的編號:
set.seed(0); a <- sample(1:10, 200, replace = TRUE)
table(cut(a, breaks = c(0,2,4,6,8,10)))
(0,2] (2,4] (4,6] (6,8] (8,10]
29 45 43 47 36
更改標籤?使用labels
(內cut()
):
table(cut(a, breaks = c(0,2,4,6,8,10), labels = c("1-2","3-4","5-6","7-8","9-10")))
1-2 3-4 5-6 7-8 9-10
29 45 43 47 36
但你必須確保a
是數值。你會得到錯誤,如果:
a <- factor(a)
table(cut(a, breaks = c(0,2,4,6,8,10)))
Error in cut.default(a, breaks = c(0, 2, 4, 6, 8, 10)) :
'x' must be numeric
謝謝您的詳細解答。我想我會堅持你的第一種做法,因爲在這個時候它對我來說簡單但足夠好。我也對剪輯功能一無所知。 –