如何在两个数据帧列表中应用函数?

时间:2016-04-01 12:13:37

标签: r list matrix dataframe

我有两个数据框列表。我们称之为list_A和list_B。

df1 = data.frame(matrix(rnorm(4), nrow=2))
df2 = data.frame(matrix(rnorm(4), nrow=2))
df3 = data.frame(matrix(rnorm(4), nrow=2))
df4 = data.frame(matrix(rnorm(4), nrow=2))

list_A <- list(df1,df2)
list_B <- list(df3,df4)

我现在如何以元素方式在列表上应用某些自定义函数?例如,将df1与df3相乘,df2与df4相乘。然后,函数应该获取列表的前两个数据帧,将它们定义为矩阵并将它们相乘。我非常感谢任何帮助!

1 个答案:

答案 0 :(得分:6)

我们可以使用Map将该功能应用于&#39; list_A&#39;的相应元素。和&#39; list_B&#39;

Map(`*`, list_A, list_B)

正如@RHertel在评论中提到的,如果所需的功能是%*%

 Map(function(x,y) as.matrix(x) %*% as.matrix(y), list_A, list_B)