I foreach Paket parallel die for-Schleife verwenden möchten: siehtwie bei der Parallelverarbeitung gemeinsam genutzten Datenrahmen verwenden foreach Verwendung
der ursprüngliche Code wie:
data_df=data.frame(...) # the data frame where original data stored
result_df=data.frame(...) # the data frame where result data to be stored
for(i in 1:10)
{
a=data_df[i,]$a
b=data_df[i,]$b
sum_result=a+b
sub_result=a-b
result_df[i,]$sum_result=sum_result
result_df[i,]$sub_result=sub_result
}
I Index i als Zeilennummer verwendet , um Daten aus dem Datenrahmen zu erhalten und Daten in einen anderen Datenrahmen zu speichern.
Wenn ich jedoch ändern:
for(i in 1:10)
zu
foreach(i=1:10) %dopar%
Es läuft super schnell, aber das Ergebnis scheint nur in einer Spalte in dem Datenrahmen gespeichert. Wie kann ich zwei Spalten zusammen speichern?
Wie soll ich den gemeinsamen Datenrahmen schreiben, um parallel zu sein?
Beispieldaten für data_df
a b
1 1
2 4
4 8
9 6
2 3
Parallelisierung erhält jeder Kindprozess eine neue Umgebung. Also müssen Sie am Ende den data.frame zurückgeben, so dass jede Kindprozessausgabe durch den Elternprozess zusammen gespeichert werden kann –
Fügen Sie auch ein Beispieldatenbeispiel hinzu, an dem wir arbeiten können! –
danke für das Hinzeigen, ich habe hinzugefügt, dass – lserlohn