我有一个包含1列的数据框,其中包含10个列表,每个列表都包含不同数量的元素。我还有一个包含10个不同值的向量(10个整数)。
我想采取" sumproduct"每个10个列表及其相应的向量值,最终得到10个值。
Value 1 = sumproduct(First list, First vector value)
Value 2 = sumproduct(Second list, Second vector value)
etc...
Final_Answer <- c(Value 1, Value 2, ... , Value 10)
我有一个函数可以生成包含表示年份的数字列表的数据框。使用循环构造数据帧以生成每个值,然后将值与数据帧一起进行行绑定。
Time_Function <- function(Maturity)
{for (i in 0:Count)
{x<-as.numeric(((as.Date(as.Date(Maturity)-i*365)-Start_Date)/365)
Time <- rbind(Time, data.frame(x))}
return((Time))
}
结果如下:
http://i.imgur.com/Sf4mpA5.png
如果我的矢量看起来像[1,2,3,4 ...,10],我希望输出为: 最终答案= [(1 * 1.1342466 + 1 * 0.6342466 + 1 * 0.1342466),(2 * 1.3835616 + 2 * 0.8835616 + 2 * 0.3835616),...,(... + 10 * 0.0630137)]
答案 0 :(得分:1)
假设您想要将列表中的每个值乘以相应的标量,然后将其全部添加,这是一种方法。
list1 <- mapply(rep, 1:10, 10:1)
vec1 <- 1:10
df <- data.frame( I(list1), vec1)
df
list1 vec1
1 1, 1, 1,.... 1
2 2, 2, 2,.... 2
3 3, 3, 3,.... 3
4 4, 4, 4,.... 4
5 5, 5, 5,.... 5
6 6, 6, 6,.... 6
7 7, 7, 7, 7 7
8 8, 8, 8 8
9 9, 9 9
10 10 10
mapply(df$list1, df$vec1, FUN = function(x, y) {y* sum(x)})
[1] 10 36 72 112 150 180 196 192 162 100