У меня есть два кадра данных, которые я пытаюсь сравнить и найти их перекрытие на основе столбца строк.Тем не менее, некоторые из них имеют дополнительное и ненужное дополнение к ним.Например, «C8 H12 O1» в одном df должен быть равен «C8 H12 O1 Na1».Я хочу удалить «Na1» из любой строки, которая может иметь его.
Я подумал, что мне нужно использовать регулярное выражение для этого, но я не могу справиться с этим, я понял.как найти их перекрывающийся% с помощью этого примера кода -
list1 <- c('C8 H12 O1 Na1', 'C15 H20 O7 Na1', 'C18 H24 O6', 'C24 H32 O9 Na1')
list2 <- c('C8 H12 O1', 'C19 H26 O7 Na1', 'C18 H24 O6', 'C24 H32 O9 Na1')
df1 <- data.frame(list1)
colnames(df1) <- "Composition"
df2 <- data.frame(list2)
colnames(df2) <- "Composition"
paste0(round(100*length(intersect(df1$Composition,
df2$Composition))/nrow(df2)), "%")
# [1] "50%"
Технически реальный процент должен составлять 75% из-за того, что первая запись имеет "ту же самую" строку минус Na1.