R应用2个数据帧的功能

时间:2016-02-09 11:07:49

标签: r apply

我想使用rminer包中的mmetric函数 我有两个数据集(观察和预测),我想按列应用该功能,我该怎么做?

预测:

     aa     oo    dcl     iy     sh
   2.255  0.648 -0.111  0.111 -0.049
   0.239  0.753 -0.972  1.907  0.000
   2.521  1.072 -0.107  0.100 -0.068
   0.415  1.072  0.735  0.789  0.885
   0.101  0.629  0.293  0.740  1.562
   0.496 -0.260 -0.133 -0.078  0.108

观察:

    aa     oo    dcl     iy     sh
   2.255  0.648 -0.111  0.111 -0.049
   0.239  0.753 -0.972  1.907  0.000
   2.521  0.403 -0.107  0.100 -0.068
   0.415  2.713 -0.637  0.789  0.885
   0.101  0.629  0.293  0.740  1.562
   2.606 -0.260 -0.133 -0.078  0.108

我可以使用的单列

mmetric(obs[,1], pred[,1], mmetric = "MAE")

如何自动将其应用于整个数据集?我尝试过" apply"我搜索了如何传递更多参数,或者如何处理更多数据集/列表,但我没有找到任何解决方案!

谢谢!

1 个答案:

答案 0 :(得分:1)

我们可以使用Map在相应的列

上应用函数mmetric
mapply(function(x,y) mmetric(x,y, metric='MAE'), obs, pred)
#     aa        oo       dcl        iy        sh 
#0.3516667 0.3850000 0.2286667 0.0000000 0.0000000 

或者我们不需要匿名功能

Map(mmetric, metric='MAE', obs, pred)