从列表中减去向量

Subtract vector from list

如何执行这样的操作:

a <- list(b=1, c=c(2,3))
d <- c(1,1,2)
e <- list(b=0, c=c(1,1))

我正在尝试减去:a - d = e。但理论上我们不能从列表中减去向量并得到具有相同结构的列表。有谁能帮帮我吗?

您可以组合 relistunlist:

> relist(unlist(a) - d, a)

$b
[1] 0

$c
[1] 1 1