Ich möchte jede Spalte meines Datenrahmens "Daten" durch jede Spalte eines anderen Datenframes namens "Benchmark" teilen. Ich erhalte jedoch unterschiedliche Ergebnisse, indem ich den Befehl lapply manuell teile und teile. Wo ist der Fehler in meinem Code?Fehler bei der Verwendung von lapply?
Der Code, den ich verwenden ist:
div <- data.frame(lapply(data, function(x) x[col(benchmark)]/benchmark))
Für die ersten beiden Spalten, das gibt mir das folgende Ergebnis ...
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
... während die erste Spalte von „Datenaufteilungs "durch die ersten beiden Spalten von‚Benchmark‘gibt mir manuell:
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
Einige Beispieldaten für‚Daten‘:
A
1 72
2 80
3 75
4 73
5 90
6 81
7 81
8 86
9 100
10 80
und für „Benchmark“:
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
Wie wäre es 'df1/df2'? – zx8754