2017-07-25 55 views
1

我有一個變量,我想在一個列聯表中使用,所以我想將變量的(離散)值切分爲bin(或者說間隔),我可以然後將我的數據從人口中分類。但是,我不能反正在網上找到,讓我選擇我箱通過以下方式:用cut函數自定義間隔/ bin來製表數據

[-30, -20) [-20, -10) [-10, 0) 0 (0, 10] (10, 20] (20, 30] 

即我想要一些時間間隔懸空,右關閉,周圍的一些其他的方式,並在中間零完全不同。無論如何,我可以做到這一點?我只想列表數據。

回答

1

我想你會需要爲這個兩次調用cut

x <- sample(-30:30, 1000, replace = TRUE) 

的關鍵是使用right參數,以獲得封閉:

x_lower <- as.character(cut(x, breaks = c(-30,-20,-10,0), right = FALSE)) 
x_upper <- as.character(cut(x, breaks = c(0,10,20,30), right = TRUE)) 

然後用ifelse結合他們(它們是互斥的,並且兩組間隔覆蓋整個範圍,除了零以外,所以這應該是好的):

x_new <- ifelse(is.na(x_lower), ifelse(is.na(x_upper), "0", x_upper), x_lower)