У меня есть 1 000 000 наблюдений, и мне нужно запустить цикл for с некоторым условием, чтобы создать новую переменную (Test) в моем наборе данных (T1). Поскольку мой набор данных очень большой, выполнение очень длинное. Поэтому я стараюсь использовать foreach
для оптимизации времени. вот что я пытаюсь сделать, но это плохо работает. Любое предложение, пожалуйста?
Это пример моего ввода:
T1 <- read.table(text="
ID CodeActe Cout test
1 1 356 34.00 NA
2 1 357 8.00 NA
3 1 363 5.75 NA
4 1 9411 150.00 NA
5 2 9411 150.00 NA
6 2 363 5.75 NA", header=T)
и моего кода:
res <- foreach::foreach(i=1:nrow(T1),.combine = rbind) %dopar% {
if (i+1 > nrow(T1)){
break
}
if (T1$ID[i]==T1$ID[i+1]){
if (T1$CodeActe[i]==356){
T1$test[i]<-1
}
else if (T1$CodeActe[i]==357){
T1$test[i]<-0
}
else if (T1$CodeActe[i]==363){
T1$test[i]<-0
}
else{
T1$test[i]<-T1$CodeActe[i]
}
}}