i'm trying to lookup in 3 diff excel sheets(Data Frames) to add 3 new columns in the consolidated data frame.
df
= Consolidated Data Frame where i'm trying to create 3 new columns
df2
= data frame(single column) where i'm looking up to get SheetName1 Column in df(SheetName1 column should result if df2 string found in any 5 columns from df else "NA"
df3
= ddata frame(single column) where i'm looking up to get Segregation & segregationRef Column in df(Segregation column should result if df3 string found in any 5 columns from df else "NA" segregationRef column should result "NA" if string found in segregation column. I tried the below but not getting the optimum result.
df <- data.frame(Section=c("sheet1", "sheet11", NA, "sheet15"),
Level =c("(Level 1)", "(Level 1)", "sheet1", "(Level 1)", NA),
SAC=c(NA, NA, "sheet5", NA),
Name=c(NA, "rohan", "vaibhav", "suresh"),
COLL MGR=c(NA, NA, NA, "suresh"))
df2 <- data.frame(sheetname=c("sheet1", "sheet2", "sheet3", "sheet4"))
df3 <- data.frame(segregation=c("john", "naren", "suresh", "rohan"))
df$Sheetname1 <- "NA"
for (j in 1:nrow(df2)) {
for (k in 1:nrow(df)) {
df$Sheetname1[k]=
ifelse(grepl(df2$Sheetname[j],
paste(df$`Level`[k], df$SAC[k]),
ignore.case=T),
df2$Sheetname[j], df$Sheetname1[k])
}
}
df$Segregation <- NA
for(l in 1:nrow(df3)){
for(m in 1:nrow(df)){
df$Segregation[m]=
ifelse(grepl(df3$Segregation[l],
paste(df$`Level`[m], df$Name[m],
df$COLL MGR[m],
df$`COLL MGR`[m],
df$`Collateral Manager`[m]),
ignore.case=T),
df3$Segregation[l],
df$Segregation[m])
}
}
Section Name
, df$ProductArea, df$SOURCE_CODE) then pull the sheet name to sheetname1 else "NA". In the similar manner if df3$segregation string presents in any of the 5 columns (Section Name, ProductArea, SOURCE_CODE, COLL MGR, Collateral Manager) from df then that string should appear in df$segregation column else "NA" – Satheesh Miryaladput
function – Rohit