r - 根据基数 R 中另一个向量的值生成一个包含重复值的向量
问题描述
样本数据
batch <- c(rep(1,3), rep(2,4), rep(3,5))
batch
[1] 1 1 1 2 2 2 2 3 3 3 3 3
alpha <- c(0.05, 0.04, 0.03)
问题陈述
我想创建一个向量,比如说alphai
,它重复alpha
它在给定值出现的次数的第 i 个元素batch
(例如,对于 batch = 1,alpha 的第一个值应该重复出现 1 的次数) . 所需的输出应如下所示:
alpha
[1] 0.05 0.05 0.05 0.04 0.04 0.04 0.04 0.03 0.03 0.03 0.03 0.03
请提供仅基于 R 的解决方案,谢谢!
编辑
我希望提供的代码可以在批处理情况下工作,其中批处理可以是非递增序列或不连续的序列(即 1、3、4、5 等)
batch2 <- c(rep(1,3), rep(3, 4), rep(4,5))
batch2
[1] 1 1 1 3 3 3 3 4 4 4 4 4
alpha
应该还是
[1] 0.05 0.05 0.05 0.04 0.04 0.04 0.04 0.03 0.03 0.03 0.03 0.03
解决方案
索引可用于复制。在R
中,索引从 1 开始。因此,如果我们指定多个 1,它会多次从第一个位置提取 'alpha' 对象中的元素,对于其他索引也是如此。请注意,索引 0 将被跳过,因为没有元素
alpha[batch]
推荐阅读
- node.js - 节点js amqplib,消费者缓存中的回调来自父函数的参数
- c - dbus 信号中收到的消息与发送的数据不匹配
- javascript - 为什么我的图像和信息不能在我的 React localhost 上呈现?
- react-native - 适用于 React Native 的 FreshChat SDK:横向模式
- web-component - 可以请求另一个 HTML URL 并将其注入它的影子 DOM 的 Web 组件
- sql - 日期函数的问题
- api - 将带有文件的 Postman 表单数据请求转换为 .NET Core API 的 cURL
- c++ - Xcode 13 无法在 Rosetta 下编译 SFML c++ 程序
- hasura - Hasura 迁移存储在 DB 中的什么位置?
- javascript - 检查表格而不提交?