Je veux utiliser paquet foreach parallèle à la boucle:comment utiliser dataframe partagé dans le traitement parallèle en utilisant foreach
le code original ressemble à:
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
}
je index i comme le numéro de ligne , pour obtenir des données à partir d'une trame de données et stocker des données dans une autre trame de données.
Cependant, si je change:
for(i in 1:10)
à
foreach(i=1:10) %dopar%
Il ne fonctionne super rapide, mais le résultat semble que stocké dans une colonne dans la trame de données. Comment puis-je sauvegarder deux colonnes ensemble?
Comment écrire la trame de données partagée, pour être mise en parallèle?
données d'échantillon pour data_df
a b
1 1
2 4
4 8
9 6
2 3
En parallélisation, chaque processus enfant obtient un nouvel environnement. Donc, à la fin, vous devez retourner le fichier data.frame afin que chaque sortie du processus enfant puisse être stockée par le processus parent. –
ajoutez également un exemple de données pour que nous puissions travailler dessus! –
merci de souligner, j'ai ajouté que – lserlohn