【问题标题】:how to split a vector to sub-vector based on the first part of the split如何根据拆分的第一部分将向量拆分为子向量
【发布时间】:2018-08-09 15:18:45
【问题描述】:

假设我有一个长度为10 的向量。进一步假设我想将此向量拆分为两个子向量。这可以。但是,假设第二个子向量是基于第一个子向量的。例如,

让Par <- c(0.6,0.5,0.7,0.4,0.6,0.9,0.2)。然后,假设我想把它分成两个子向量,即,

par1 <- Par[1:5] 我希望第二个子向量是Par 的最后两个值。所以,我可以使用par2 <- Par[5:7]。没事儿。但是,假设我想自动执行此操作。也就是说,如果par1 是n 值的向量Par,那么par2 是剩余值的向量。例如,如果我有length(parnew1) = 5 和length(parnew2=3) 那么,我想有这样的:

par1 <– Par[1:length(parnew1)]

和

par2 <- Par[?:length(parnew2)]我把?放在这里是因为我不知道如何从这里开始。我想从par1 结束的地方开始。

有什么帮助吗?

【问题讨论】:

  • par2 = Par[(length(parnew1)+1):(length(Par))]
  • @ManishSaraswat 非常感谢。我真的没有想到这个。
  • @Sotos 谢谢,这也是一个很大的帮助。
  • 或par2 <- Par[-(1:length(par1))]或par2 <- tail(Par, -length(par1))

标签: r


【解决方案1】:

您可以在 R 的索引中包含操作。例如,如果您将长度设置为 parnew1,您可以像这样创建 parnew1 和 parnew2。注意定义为length_parnew1 的变量和函数调用length(Par) 之间的区别。

Par <- c(0.6,0.5,0.7,0.4,0.6,0.9,0.2)
length_parnew1 <- 5
parnew1 <- Par[1:length_parnew1]
parnew1
#> [1] 0.6 0.5 0.7 0.4 0.6
parnew2 <- Par[(length_parnew1 + 1):length(Par)]
parnew2
#> [1] 0.9 0.2

由reprex package (v0.2.0) 于 2018 年 3 月 1 日创建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2020-12-23
    相关资源
    最近更新 更多