У меня есть функция с двумя задействованными циклами, и в результате получается два списка данных.
Структура
function (){
for (i in 1:50){
for (j in 1:100){
"Do something"
"get results a and b"
a list
b list
}
"use the series of a and b calculate two parameter A and B"
"put A and B into their list"
list A = append(list A, A)
'or'list B = cbind(list B, B) # I don't know which one is better
}
plot the figure using list A and B
"saving the results"
dataframe = df(listA, listB)
dataframe to csv
}
Код должен симулироваться 5000 раз, и каждый шаг занимает не менее 1 минуты:
- Я хочу запустить всю эту функцию, используя параллельное программирование; Я пробовал
lapply
, но он хорошо работает только с одним циклом, если я делаю так, результаты не согласованы, и график не может работать, то есть я не могу получить результаты;
и я обнаружил, что некоторый параллельный код не может работать в Windows, а некоторые не могут работать в Mac, я путаюсь с этими ...
Каждый шаг в цикле является независимым, поэтому я подумал, что один альтернативный способ - это просто разделить задания, чтобы выполнять их одновременно, но мне нужны результаты постоянно (в порядке их следования).
- Чтобы использовать данные в дальнейших требованиях к графику, мне нужно сохранить результаты, у меня возникли проблемы с этим (верхний здесь), а также с параллельным;
Способ сохранения результатов выглядит как беспорядок.
Например, я хочу:
A B
0 0
0.1 1
1.2 4
3 9
6 12
... ...
но я получил:
V1
0 0 0.1 1 1.2 4 3 9 6 12 ... ...
Я не знаю, как сохранить данные двух столбцов из параллельного программирования.