У меня есть набор данных, который выглядит следующим образом:
ColA; ColB; ColC;
PAR; BKK; Y;
BKK; SYD; Y;
NYC; LAX; Y;
LAX; SFO; Y;
Я хочу дублировать строки, где ColC == Y и, если colB строки == colA другой строки, то я хочу создать строка с этими значениями: colA первого и colB второго. В нашем примере это будет выглядеть так:
ColA; ColB; ColC;
PAR; SYD; Y;
NYC; SFO; Y;
И эти строки будут добавлены в основной набор данных.
Я попытался использовать "для" l oop, и создание временного набора данных для их связывания, но это не работает.
for (i in 1:nrow(maindataset)){
for (j in (i+1):nrow(maindataset)-1){
if (maindataset$colB[i]==maindataset$colA[j] & maindataset$colC[i]==maindataset$colC[j]) {
newDF<-data.frame(ColA=maindataset$colA[i],ColB=maindataset$colA[j],ColC=maindataset$colA[j],stringsAsFactors = FALSE)
maindataset<-rbind(maindataset,newDF)
}
}
}
Я не уверен, что al oop - лучшее решение. У вас есть идеи, как я могу это решить?
Спасибо!