r - R - 在向量中创建特定元素的总和
问题描述
假设我有一个向量
v1 <- sample(1:100, 100)
并希望在定义了下标和上标的不同区间内获得总和
lower_bound <- c(4,28,56,74)
upper_bound <- c(24,33,86,98)
所以基本上,我想要
all_sums <- c(sum(v1[4:24]), sum(v1[28:33]), sum(v1[56:86]),sum(v1[74:98]))
我可以使用循环,但肯定有更漂亮的解决方案。有人有线索吗?提前谢谢了。
解决方案
您可以使用mapply
:
mapply(function(i, j) sum(v1[i:j]), lower_bound, upper_bound)
#[1] 962 340 1586 1340
c(sum(v1[4:24]), sum(v1[28:33]), sum(v1[56:86]),sum(v1[74:98]))
#[1] 962 340 1586 1340
数据:
set.seed(42)
v1 <- sample(1:100, 100)
推荐阅读
- bash - Bash:如果字符不存在,如何在行尾添加字符?
- sql - 根据季度查找所有记录
- mysql - 为什么我将十个数据库复制到一个数据库时,MySQL 的 CPU 使用率很高?
- html - !important 不被考虑
- php - 如何使用 php pdo 以逗号分隔在一行中上传多个图像并显示这些图像
- sql - 从存储在 SQL Server 表中的数据中获取上个月的日期值
- javascript - 用 Javascript 播放一次后让 GIF 消失?
- python - 如何确定 numba 的 prange 是否真的正常工作?
- azure - az eventgrid event-subscription create 在 Powershell 中不起作用
- javascript - 将 CSS 过渡添加到不断增长的项目列表中