可重现的数据集
data1 <- data.frame(ID = c(1,2), Description = c("Chiquita","Chiquita mazamorra"), Max = c(200,125))
data2 <- data.frame(ID = c(1,2,3,4,5,6,7), Description = c("Chiquita mini", "Chiquita Oriville","Chiquita 24h","Manzano Chiquita 5j...","Chiquita mazamorra 1,2h..","Chiquita mazamorra Buro","Chiquita AM 2F"), Max = c(24,110,80,90,134,123,210))
我有一个数据集data1,如下图
Id Description Max
1 Chiquita 200
2 Chiquita mazamorra 125
我还有另一个数据集data2,如下图
Id Description Actual
1 Chiquita mini 24
2 Chiquita Oriville 110
3 Chiquita 24h 80
4 Manzano Chiquita 5j... 90
5 Chiquita mazamorra 1,2h... 134
6 Chiquita mazamorra Buro 123
7 Chiquita AM 2F 210
8 Chiquita..... 124
9 Chiquita(P) 213
10 Chiquita, mazamorra, S 188
如果语句应检查 Data2 描述是否在 data2$Description Chiquita mazamorra中包含此字符,如果是,则检查 Data2$Actual > Data1$Max。如果是,那么结果 == 好,否则小。请注意,在 Chiquita mazamorra 之后可能还有其他字符,例如Chiquita mazamorra 1,2h..这没关系,但不是Chiquita mazamorra Buro
同样,另一个 ifelse 应检查 Data2 描述是否包含Chiquita,如果是,则检查 Data2$Actual > Data1$Max。如果是,那么结果 == 好,否则小。在 Chiquita 之后可能还有其他字符,例如Chiquita 24h或Chiquita AM 2F,这些都可以,但不是Chiquita mini或Chiquita Oriville
这是最终所需的输出(data2)
Id Description Actual Result
1 Chiquita mini 24 NA
2 Chiquita Oriville 110 NA
3 Chiquita 24h 80 Small
4 Manzano Chiquita 5j... 90 NA
5 Chiquita mazamorra 1,2h... 134 Good
7 Chiquita mazamorra Buro 123 NA
6 Chiquita AM 2F 210 Good
8 Chiquita..... 124 Small
9 Chiquita(P) 213 NA
10 Chiquita, mazamorra, S 188 Good
我知道这可以使用 grepl 和 ifelse 语句的组合来完成,我不是很自信?也许有更好的方法可以做到这一点,我不知道,我很困惑。需要帮忙。