首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R编程中,将特定列的第一个元素与另一列的所有元素相减后求和,并与2个元素重复,依此类推

在R编程中,将特定列的第一个元素与另一列的所有元素相减后求和,并与2个元素重复,依此类推
EN

Stack Overflow用户
提问于 2019-05-28 21:01:36
回答 2查看 32关注 0票数 0

我想将post减去datestamp-1的所有元素与datestamp-2的第一个元素相加,并对datestamp-2的第二个元素重复相同的操作,依此类推

代码语言:javascript
复制
datestamp1 datestamp2 load_percent
2019-05-28 2019-05-25 0.01883
2019-05-29 2019-05-26 0.72340

预期结果如下所述。

代码语言:javascript
复制
datestamp1 datestamp2 weighted_index
2019-05-28 2019-05-25 2.95
2019-05-29 2019-05-26 2.20

逻辑存在

代码语言:javascript
复制
1. 2019-05-28 - 2019-05-25 = 3 * 0.01 = 0.056 
2. 2019-05-29 - 2019-05-25 = 4 * 0.72 = 2.893

0.056与2.893之和是2.95.

类似的

代码语言:javascript
复制
3. 2019-05-28 - 2019-05-26 = 2 * 0.01 = 0.037
4. 2019-05-29 - 2019-05-26 = 3 * 0.72 = 2.170

0.037和2.170的和是2.20

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-28 22:05:46

使用sapply你可以做到

代码语言:javascript
复制
df$weighted_index <- sapply(df$datestamp2, function(x) 
                            sum((df$datestamp1 - x) * df$load_percent))

df
#  datestamp1 datestamp2 load_percent weighted_index
#1 2019-05-28 2019-05-25      0.01883        2.95009
#2 2019-05-29 2019-05-26      0.72340        2.20786

确保您的列datestamp1datestamp2属于Date类。如果它们不是,首先将它们转换为日期,然后使用上面的代码。

代码语言:javascript
复制
 df[1:2] <- lapply(df[1:2], as.Date)
票数 0
EN

Stack Overflow用户

发布于 2019-05-28 22:07:34

我们可以使用outer获取两个日期列之间的差值,然后使用'load_percent‘获取产品的colSums

代码语言:javascript
复制
df1$weighted_index <- with(df1, colSums(outer(datestamp1, 
          datestamp2, FUN = `-` ) * load_percent))

df1
#  datestamp1 datestamp2 load_percent weighted_index
#1 2019-05-28 2019-05-25      0.01883        2.95009
#2 2019-05-29 2019-05-26      0.72340        2.20786

数据

代码语言:javascript
复制
df1 <- structure(list(datestamp1 = structure(c(18044, 18045), class = "Date"), 
    datestamp2 = structure(c(18041, 18042), class = "Date"), 
    load_percent = c(0.01883, 0.7234)), row.names = c(NA, -2L
), class = "data.frame")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56342905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档