我想用b1的col1乘以每個列表元素中的每個列表元素並將其存儲在單獨的列中。基本上這是我想要做的:如何將迭代應用的結果相結合
res = 0
for item in a
for col_item in b
res = res + item * col_item
例如,
l1 = list(c('17-Nov-14', 10), c('17-Apr-15', 20))
b1 = data.frame(col1 = c(10, 20), res=c(0))
result = data.frame(col1= c(10, 20), res = c(2*10+4*10+3*10, 2*20+4*20+3*20))
我有一個工作代碼,但可以改進。
test <- function(param, df) {
df$res <- as.integer(param[2]) * df$col1
df
}
t <- lapply(l1, test, b)
result <- cbind(t[[1]]$col1, t[[1]]$res + t[[2]]$res + t[[3]]$res)
'b1 $ res < - sum(unlist(l1))* b1 $ col1'? – Psidom
我不能做sum(unlist(l1))。它必須分別處理l1的每個元素。 –
根據你的邏輯,除非你的真實情況與你發佈的不一樣,否則這似乎不那麼重要。 – Psidom