我想询问是否有一种有效的方法来比较数据帧的每一行与其余行。目前我正在运行以下代码,但需要数天才能完成。提供更多细节:
我有一个包含166,000行的表(每行是一个订单),有4列:
Column1 :订单号(订单的主键)
Column2 :订单类型
Column3 :客户编号(订单的主键)
第4栏:订单日期
我想识别在 Z 类型的订单的3天内(> = 0和< = 3)进行的订单(不是类型 Z )强>(由同一客户)。因此,例如,如果我今天和明天订购的类型为 Z ,我会发出不是 Z 的第二个订单,我想确定第二个订单。实际上,我希望客户在订单类型 Z 的3天内完成所有订单。
我使用的代码是:
n<-nrow(data)
d<-character(n)
condition1<-data$OrderType != "Z"
condition2<-data$OrderType == "Z"
data[,4]<-as.Date(data[,4])
for (i in 1 :n ){
if(condition1[i]) { ## not type Z
for (j in 1 : n) {
if (condition[j]) { ## type Z
if (data[i, 1] != data[j, 1] & data[i, 3] == data[j, 3] ) { ## I dont compare it with itself & from the same customer
if(as.numeric(data[i, 4] - data[j, 4]) <= 3 & as.numeric(data[i, 4] - data[j, 4]) >= 0 ) {
d[i] <- as.character(data[i, 1])
}
}
}
}
}
}
非常感谢任何帮助!