【问题标题】:Split a vector into 3 columns based on given intervals根据给定的间隔将向量拆分为 3 列
【发布时间】:2017-11-04 00:14:01
【问题描述】:

非常基本的问题,但不知道如何开始:

我已经生成了 200 个随机值:

SE <- runif(200, 0, 0.65)

为此,我想创建 3 列:se.swse.mse.st,它们分别包含区间 [0,0.05]、]0.05、0.35] 和 ]0.35、0.65] 的值。

我怎样才能做到这一点?

我曾尝试使用嵌套的ifelse 函数,但它不起作用。这似乎是一个简单的问题,我花了太多时间......

【问题讨论】:

  • 需要有关此问题的更多信息
  • @Gabri 什么样的信息?
  • ?cut?split。将第一个函数的结果提供给第二个函数。

标签: r vector split


【解决方案1】:
> SE.SW <- SE[SE >=0 & SE <= .05 ]
> SE.M <- SE[SE >.05 & SE <= .35 ]
> SE.ST <- SE[SE >.35 & SE <= .65 ]

【讨论】:

    【解决方案2】:

    在基础 R 中使用 findIntervalsplit

    x <- findInterval(SE, c(0,0.05,0.35,0.65))
    split(SE, x)
    
    # $`1`
    # [1] 0.04016108
    
    # $`2`
    # [1] 0.1725806 0.2418805 0.1310933
    
    # $`3`
    # [1] 0.3723547 0.5903351 0.5839533 0.6140389 0.4295186 0.4089241
    

    或使用cutsplit

    x <- cut(SE, breaks = c(0,0.05,0.35,0.65))
    split(SE, x)
    
    # $`(0,0.05]`
    # [1] 0.04016108
    
    # $`(0.05,0.35]`
    # [1] 0.1725806 0.2418805 0.1310933
    
    # $`(0.35,0.65]`
    # [1] 0.3723547 0.5903351 0.5839533 0.6140389 0.4295186 0.4089241
    

    数据

    set.seed(1)
    SE <- runif(10, 0, 0.65)
    

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 2016-07-25
      • 1970-01-01
      相关资源
      最近更新 更多