【问题标题】:How to cut a vector in two of the same size?如何将一个向量切成两个相同大小的向量?
【发布时间】:2013-11-08 10:47:42
【问题描述】:

所以,我有一个长度为 114 的向量:

p2<-c(28.00, 28.00, 28.00, 28.00, 28.00, 28.00, 28.37, 28.37, 28.37, 28.37, 28.37,
     28.37, 28.37, 28.37, 28.37, 28.37, 28.37, 28.37, 28.37,28.37, 28.37, 28.45,
     28.45, 28.45 ,28.45, 31.37, 31.37 ,31.37, 31.37, 31.37, 31.37, 31.37, 31.37,
     31.37, 31.37, 31.37, 31.37 ,31.37, 36.37, 36.37, 36.37 ,36.37, 38.00, 38.00,
     38.00, 38.00, 38.00, 38.00, 38.00, 38.00, 38.00, 38.00, 38.00, 38.00, 38.00,
     38.00 ,38.00, 38.00, 38.00 ,38.00, 38.00, 38.00, 38.00,38.00, 38.00, 38.00,
     38.00, 38.00, 38.00, 38.00, 38.37, 38.37, 38.37, 38.37, 38.37, 38.37, 38.37,
     38.37, 38.37, 38.37, 38.37, 38.37, 41.37, 41.37, 41.37, 41.37, 41.37, 41.37,
     41.37, 41.37, 41.37, 41.37, 41.37, 41.37, 41.37, 41.37, 41.37, 41.37, 41.37,
     41.37, 41.37, 41.37, 41.37, 41.37, 41.37, 41.3,7, 41.37, 41.37, 41.37, 41.37,
     41.37, 41.37, 41.37, 41.3)

并且我想将其减少为两条记录。我尝试使用 cut,但输出由具有相同长度的间隔定义:(28,34.7](34.7,41.4]

我该怎么做?

【问题讨论】:

  • 您的预期输出是什么?您能否以可重现的方式添加数据,即dput( p2 )
  • 你试过p2[1:(length(p2)/2)]p2[(1+length(p2)/2):length(p2)]吗?
  • 我希望输出是一个向量除以具有相同记录数的两个因子区间
  • 或作为矩阵:p2mat &lt;- matrix(p2, ncol=2)
  • @agstudy 输出将是 [1] (1,2] (4,5]

标签: r vector r-factor


【解决方案1】:

不清楚您的预期输出,但我认为您正在寻找:

split(p2,cut(p2,2))

【讨论】:

    【解决方案2】:

    这能满足你的需求吗?

    library(Hmisc)
    cut2(p2, g = 2)
    

    来自?cut2: ...如果cuts没有给出,将x分成分位数组(g给出)

    【讨论】:

      【解决方案3】:

      针对您的特定情况尝试

      > set.seed(1)
      > p2 <- runif(114, 28, 42)  # random data
      > 
      > ind <- 1:(length(p2)/2) # index for cutting the vector
      > p2.1 <- p2[ind]         # first subvector
      > p2.2 <- p2[-ind]        # second subvector
      > 
      > length(p2.1)            # length of first subvector
      [1] 57
      > length(p2.2)            # length of second subvector
      [1] 57
      

      或者可能是这样的?

      > vec <- setNames(p2, cut(p2,2, labels=c("V1", "V2")))
      > is.vector(vec)  # one vector 
      [1] TRUE
      

      【讨论】:

      • 我可能没有清楚地解释我的疑问。我希望输出是一个向量除以具有相同记录数的两个因子区间。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2022-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多