在R中将两个列表对象相乘

vel*_*aco 5 operations r list

我正在尝试做的事情:将列表中的对象乘以不同列表中的另一个对象?我需要将列表A中1000个值的向量乘以列表B中1000个值的向量.

例如:

List_A中的向量:

1
2
3
Run Code Online (Sandbox Code Playgroud)

List_B中的向量:

4
5
6
Run Code Online (Sandbox Code Playgroud)

我想要的输出向量,List_A*B:

4
10
18
Run Code Online (Sandbox Code Playgroud)

我在{lgcp}包中找到了一个名为multiply.list()的东西,但显然并不是所有的依赖都存在了所以我不能使用它...我尝试使用lapply(不起作用,x*l1中的错误:非 - 二元运算符的数字参数)和mapply(创建矩阵,而不是直接乘以值).

我在循环中执行所有这些操作,但cinput.data和l1都是列表的指定部分.

#l2<-lapply(cinput.data, function(x) x*l1)

#l2<-mapply('*',cinput.data, l1)
Run Code Online (Sandbox Code Playgroud)

Mik*_* H. 7

你可以使用这个Map功能.如果需要,这也可以保留数据的列表结构.如果你不这样做,你可以简单地使用unlist:

Map('*',l1,l2)

[[1]]
[1] 4

[[2]]
[1] 10

[[3]]
[1] 18
Run Code Online (Sandbox Code Playgroud)

数据:

l1<-list(1,2,3)

l2<-list(4,5,6)
Run Code Online (Sandbox Code Playgroud)


小智 3

根据您在提供的代码片段中将列表相乘的基础,我将假设列表仅包含您想要相乘的向量。我可能会发表评论来澄清这一点,但我没有代表。

您是否尝试过“取消列出”?

unlist(cinput.data)*unlist(l1)
Run Code Online (Sandbox Code Playgroud)

它远非复杂,但从您单独提供的细节来看,我不明白为什么它不能达到您想要的效果。