Использование цикла foreach для создания новой переменной в кадре данных - PullRequest
0 голосов
/ 08 октября 2019

У меня есть 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]
  }
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...