2016-09-19 2 views
2

У меня есть вектор x <- c(1:10), моя проблема утверждение, что если мой элемент сумма больше или равно 10, то хранить их в другом объекте, например, что мой выход будет выглядеть a=(1,2,3,4); b=(5); c1=(6); d=(7); e=(8); f=(9); g=(10) I попробовал этоГруппировка элементов на основе их суммы

x <- c(1:10) 

for(i in x) { 
    if(sum(x) <= 10) 
    { 
    . 
    . 
    . 
    } 

} 

любая помощь была бы очень признательна!

ответ

1

Мы можем сделать двойной cumsum для создания переменной группировки и splitvector ('x') на основе этого.

lst <- split(x, cumsum(cumsum(x)>10)) 

Если нам нужны отдельные объекты в глобальной среде, list2env можно использовать (но не рекомендуется)

list2env(setNames(lst, letters[seq_along(lst)]), envir = .GlobalEnv) 
Смежные вопросы