我有以下数据框:
id1 id2 qtty cat output
15994 15994 30 1 1
25787 26275 7 2 1
122301 122301 0 0 0
36199 35333 14 2 1
36199 36199 15 1 1
46223 45746 14 2 1
46223 46223 15 1 1
80570 80570 0 0 0
55728 55728 1 1 1
94218 94218 0 0 0
69456 66837 5 2 1
cat
我要根据以下条件生成的列在哪里:
id1=id2 and qtty=0 then cat=0
id1=id2 and qtty>0 then cat=1
id1!=id2 and qtty=0 then cat=2
id1!=id2 and qtty>0 then cat=2
output
是我得到的,我所做的是:
status<-function(dataframe){
store<-rep(0,length(dataframe[,1]))
for(i in 1: length(dataframe[,1])) {
if(dataframe[i,1]==dataframe[i,2]) {
if(dataframe[i,3]==0) {store[i]<-0}
else
if(dataframe[i,1]==dataframe[i,2]) {
if(dataframe[i,3]>0) {store[i]<-1}
else
if(dataframe[i,1]!=dataframe[i,2]) {
if(dataframe[i,3]>0) {store[i]<-2}
else store[i]<-2
}
}
}
}
return(store)
}
任何帮助将不胜感激。