使用lapply时出错?

M3003

我想将数据框“数据”的每一列除以另一个称为“基准”的数据框的每一列。但是,使用lapply并将其手动划分会得到不同的结果。我的代码中的错误在哪里?

我使用的代码是:

div <- data.frame(lapply(data, function(x) x[col(benchmark)]/benchmark))

对于前两列,这给了我以下结果...

   div.A.B1  div.A.B2
1  0.7200000 0.8000000
2  0.7422680 0.8163265
3  0.7346939 0.8080808
4  0.7422680 0.8333333
5  0.7578947 0.8510638
6  0.7741935 0.8695652
7  0.7826087 0.8510638
8  0.7826087 0.8602151
9  0.7912088 0.8791209
10 0.8181818 0.8791209

...同时将“ data”的第一列除以“ benchmark”的前两列得到的结果是:

        A.B1      A.B2
1  0.7200000 0.7200000
2  0.8247423 0.8163265
3  0.7653061 0.7575758
4  0.7525773 0.7604167
5  0.9473684 0.9574468
6  0.8709677 0.8804348
7  0.8804348 0.8617021
8  0.9347826 0.9247312
9  1.0989011 1.0989011
10 0.9090909 0.8791209

一些有关“数据”的示例数据:

     A
1   72
2   80
3   75
4   73
5   90
6   81
7   81
8   86
9  100
10  80

对于“基准”:

    B1  B2
1  100 100
2   97  98
3   98  99
4   97  96
5   95  94
6   93  92
7   92  94
8   92  93
9   91  91
10  88  91
简陋

我认为您可能想为此尝试purrr,它具有一些功能,可让您跨多个列表进行映射,这对这种情况很有帮助。在这种情况下,您可以使用类似map2_df(data, benchmark, ~.x / .y)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章