【问题标题】:Finding the index of a vector from another vector从另一个向量中找到一个向量的索引
【发布时间】:2013-07-18 08:49:30
【问题描述】:

我有三个向量a, r and b。我想检查 r 的第一个元素在零和向量a 的第一个元素之间,如果是,则从向量b 中输入零,如果不是,它属于什么区间,然后提取向量b 的值, ...我怎样才能在 R 中做到这一点?最后我应该有一个样本为 20 的向量,并且值属于向量 b

      a =c(0.1531532, 0.2432432, 0.3243243, 0.3648649, 0.3873874, 0.4054054, 
       0.4594595, 0.5720721, 0.7522523, 1.0000000)
      set.seed(2)
      r = runif(20, 0, 1)
      b = 0:9
      result = c( 1, 8, 8, 1, 9, 9, 0, 9, 7, 7, 7, 1, 9, 1, 5, 9, 9, 1, 6, 0)

【问题讨论】:

  • 您是否尝试从b 中进行加权随机抽样?有点难以理解你的问题,但如果这是你想要的,可能有更直接的方法可以到达那里。
  • 1- 您应该设置种子以使您的示例可重现。 2-您应该添加预期的输出。 3-您还应该展示您尝试过的内容。 4 ...

标签: r


【解决方案1】:
R> a = c(0, a)
R> cut(r, a, labels = b)
 [1] 1 8 8 1 9 9 0 9 7 7 7 1 9 1 5 9 9 1 6 0
Levels: 0 1 2 3 4 5 6 7 8 9

【讨论】:

  • 类似的东西看起来很像。你可以像b[cut(r,c(0,a))]这样简化
  • 不使用 cut 有没有其他方法?
  • @rose 使用cut 有什么问题?它似乎完全符合您的要求
  • @rose - 我不知道,我猜findInterval 可能也有用。这些是您最好的选择,因为它们是为任务而设计的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
相关资源
最近更新 更多