r - 在R中使用起点和终点变量对范围求和
问题描述
我有一个包含以下变量的数据框:
start_point end_point variable_X
1 5 0.3757
2 7 0.4546
3 7 0.1245
4 8 0.3455
5 11 0.2399
6 12 0.0434
7 15 0.4323
... ... ...
我想添加第四列,将变量 X 从起点到前两列中定义的终点相加,即第一行中的条目将是 1 和 5(含)之间的总和:0.3757+0.4546+ 0.1245+0.3455+0.2399 = 1.5402,第二行的输入将是 2 到 7(含)之间的总和:0.4546+0.1245+0.3455+0.2399+0.0434+0.4323 = 1.6402 等等。
我是 R 新手,任何帮助将不胜感激。
解决方案
可能有更巧妙的方法可以做到这一点,但这里有一个快速版本:
df$sumX <- apply(df, 1, function(x) sum(df$variable_X[x[1]:x[2]]))
df
start_point end_point variable_X sumX
1 1 5 0.3757 1.5402
2 2 7 0.4546 1.6402
3 3 7 0.1245 1.1856
4 4 8 0.3455 NA
5 5 11 0.2399 NA
6 6 12 0.0434 NA
7 7 15 0.4323 NA
最后几行在NA
这里,因为我没有您的数据的第 8 行到第 15 行。
推荐阅读
- html - 仅在 iOS(Safari 和 Chrome)上的 z-index 不起作用(内容出现在后面)
- go - golang sftp 此服务只允许 sftp 连接
- docker - 来自守护进程的错误响应:Get http s://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record doesn't look like a TLS handshake
- java - KafkaConsumer 在轮询时进入无限等待状态
- python - 在 Python 中使用 sklearn 使用 MAE 训练线性模型
- python - 如何使用方法更改类属性?
- javascript - Laravel - PHP array_push 为 Ajax 生成编号索引
- python - 为什么我用这个神经网络得到错误/不连贯的结果?
- python - 如何将日期时间格式转换为分钟 - 熊猫
- maven - 如何并行构建maven模块