【问题标题】:GNU R, creating a new array [duplicate]GNU R,创建一个新数组[重复]
【发布时间】:2015-01-14 09:04:47
【问题描述】:

在 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"

我该怎么做?

【问题讨论】:

    标签: arrays r


    【解决方案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"
    

    【讨论】:

      【解决方案2】:

      如果需要在条件范围内做其他事情,可以使用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"
      

      【讨论】:

        猜你喜欢
        • 2022-11-03
        • 2019-12-22
        • 2017-01-07
        • 1970-01-01
        • 2018-12-19
        • 2018-08-01
        • 1970-01-01
        • 2017-05-07
        • 2022-01-13
        相关资源
        最近更新 更多