2015-01-14 2 views
0

В GNU R, я хочу создать массив строк из массива чисел, в котором я классифицирую числовые интервалы. Например:GNU R, создавая новый массив

x <- c(1:6) 

Новый массив должен категоризировать число интервалов, как, например:

x <= 2 --> "Category A" 
x > 2 & x <= 5 --> "Category B" 
x > 5 -- > "Category C" 

Так что новый массив принимает вид:

x1 
[1] "A" "A" "B" "B" "B" "C" 

Как это сделать ?

ответ

1

Вы можете попробовать cut

x1 <- as.character(cut(x, breaks=c(0, 2, 5, Inf), labels=LETTERS[1:3])) 
x1 
#[1] "A" "A" "B" "B" "B" "C" 
0

Вы можете использовать функцию sapply, если вам нужно сделать что-то еще в условиях:

sapply(x, function(x){ 
    if(x <= 2){ 
    "A" 
    } else if (x > 2 && x <= 5){ 
    "B" 
    } else if (x > 5){ 
    "C" 
    } 
}) 

[1] "A" "A" "B" "B" "B" "C" 
Смежные вопросы