列表a如下:
一个< -list(3:6,6:8,3:4,8)
> a
[[1]]
[1] 3 4 5 6
[[2]]
[1] 6 7 8
[[3]]
[1] 3 4
[[4]]
[1] 8
我的目标是计算每个对象中所有2元素组合的所有产品.例如,a中的第一个对象是3 4 5 6,因此第一个对象的所有乘积都是12 15 18 20 24 30,第二个对象的所有乘积都是42 48 56.但是当只有一个元素时在对象中,输出应为0.我计划通过使用Map(function(x)combn(x,2,prod),a)来解决问题,但是当对象中只有一个元素时它不适合(例如a中的第4个对象).
> Map(function(x) combn(x,2,prod),a)
[[1]]
[1] 12 15 18 20 24 30
[[2]]
[1] 42 48 56
[[3]]
[1] 12
[[4]]
[1] 2 3 4 5 6 7 8 6 8 10 12 14 16 12 15 18 21 24 20 24 28 32 30 35 40 42 48 56
那么如何在每个对象中获得所有组合的所有2元素产品,并在同时只有一个元素时获得0?谢谢!
我的预期结果如下:
[[1]]
[1] 12 15 18 20 24 30
[[2]]
[1] 42 48 56
[[3]]
[1] 12
[[4]]
[1] 0