I have 2 files,
1.File 1 DDA_File with data set of 12 columns and 124348 objects
- Reference sheet (Ref_File)having 4 columns and 30 objects including header.
My objective is to look for value in 12th column of DDA_File in 1st column of Ref_File. If match found, then pick value against the match from 2nd column of Ref_File and paste it in 2nd column of DDA_File.
Git link for sample data input,RS and sample output
I tried with nested loop traversing through each object of file 1 to pick for match and condition check for match.
#Base file for work
DDA_File=read.csv(file_location,header = TRUE)
# Reading reference file to enrich SAP
Ref_File=read.csv(file_location1,header = TRUE)
num_of_rows_DDA <- nrow(DDA_File)
num_of_rows_Ref <- nrow(Ref_File)
#Placeholder for data insertion
output <- data.frame(matrix(data = 0, nrow = num_of_rows_DDA, ncol=2, byrow=T))
no_entry<-data.frame( matrix(data=0) )
#For loop for traversing through each element of DDA file
system.time( for( i in 1:num_of_rows_DDA)
{
#For Loop for traversing through each row of Reference Sheet
for(j in 1:num_of_rows_Ref)
{
#Condition check
if(DDA_File[i,12]==Ref_File[j,1])
{
output[i,1]<-paste(DDA_File[j,2],"-",Ref_File[j,2])
output[i,2]<-Ref_File[j,3]
break
}
else{
no_entry<-DDA_File[i,12]
}
}
})
print("No Match found in reference sheet for :")
Actual output is repetition of 6 entries in all objects.
X1 X2
1 I-DL-DLHI-ENB-A291 - Beta 2
2 I-DL-DLHI-ENB-A291 - Gamma 2
3 I-DL-DLHI-ENB-A291 - Gamma 5
4 I-DL-DLHI-ENB-A291 - Beta 4
5 I-DL-DLHI-ENB-A291 - Gamma 4
6 I-DL-DLHI-ENB-A291 - Alpha 4
7 I-DL-DLHI-ENB-3218 - Beta 6
8 I-DL-DLHI-ENB-A291 - Gamma 3
9 I-DL-DLHI-ENB-A291 - Alpha 2
10 I-DL-DLHI-ENB-3218 - Gamma 6
11 I-DL-DLHI-ENB-3218 - Alpha 1
12 I-DL-DLHI-ENB-3218 - Beta 1
13 I-DL-DLHI-ENB-3218 - Gamma 1
14 I-DL-DLHI-ENB-3218 - Alpha 6
24 I-DL-DLHI-ENB-A291 - Alpha 3
30 I-DL-DLHI-ENB-A291 - Alpha 5
89 I-DL-DLHI-ENB-A291 - Beta 5
94 I-DL-DLHI-ENB-A291 - Beta 3
4440 I-DL-DLHI-ENB-A291 - Gamma 7
9784 I-DL-DLHI-ENB-A291 - Beta 7
15856 I-DL-DLHI-ENB-A291 - Alpha 7