Я пытаюсь выполнить поиск в 3 различных листах Excel (фреймах данных), чтобы добавить 3 новых столбца в консолидированном фрейме данных.
df
= Консолидированный фрейм данных, в котором я пытаюсь создать 3новые столбцы
df2
= фрейм данных (один столбец), где я ищу, чтобы получить столбец SheetName1 в df (столбец SheetName1 должен получиться, если строка df2 найдена в любых 5 столбцах из df, иначе "NA"
df3
= кадр ddata (один столбец), где я ищу, чтобы получить столбец Segregation & segregationRef в df (столбец сегрегации должен получиться, если в любых 5 столбцах найдена строка df3 из df, в противном случае столбец segregationRef "NA")должен привести к "NA", если строка найдена в столбце разделения. Я пробовал ниже, но не получал оптимальный результат.
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])
}
}