根据总和对元素进行分组

时间:2016-09-19 11:22:26

标签: r sum grouping

我有一个向量x <- c(1:10),我的问题陈述是,如果我的元素总和大于或等于10,则将它们存储在不同的对象中,这样我的输出看起来像 a=(1,2,3,4); b=(5); c1=(6); d=(7); e=(8); f=(9); g=(10) 我试过这个

x <- c(1:10)

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

}

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:1)

我们可以根据它创建一个双cumsum来创建一个分组变量split vector('x')。

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

如果我们在全球环境中需要单个对象,可以使用list2env(但不推荐)

list2env(setNames(lst, letters[seq_along(lst)]), envir = .GlobalEnv)