使用foreach循环在数据框中创建新变量

时间:2019-10-08 15:54:58

标签: r

我有1 000 000个观测值,我需要在一定条件下运行for循环以在我的数据集(T1)中创建一个新变量(Test)。由于我的数据集非常大,因此执行时间很长。因此,我尝试使用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]
  }
}}

0 个答案:

没有答案