您需要匹配 的列名tbl1和中的Product列tbl2。获取tbl1长格式并"_Cutoff"从Product列中删除并加入两个表。然后,如果Cutoff_Value大于 ,则可以分配 1 value。
library(dplyr)
tbl1 %>%
tidyr::pivot_longer(cols = -name, names_to = 'Product') %>%
right_join(tbl2 %>%
mutate(Product = sub('_Cutoff', '', Product)), by = 'Product') %>%
mutate(flag = as.integer(Cutoff_Value > value))
# A tibble: 2 x 5
# name Product value Cutoff_Value flag
# <chr> <chr> <int> <int> <int>
#1 lmn Product1_abc_value 12 15 1
#2 lmn Product2_abc_value 20 17 0
数据
tbl1 <- structure(list(name = "lmn", Product1_abc_value = 12L,
Product2_abc_value = 20L), class = "data.frame", row.names = c(NA,-1L))
tbl2 <- structure(list(Product = c("Product1_abc_value_Cutoff",
"Product2_abc_value_Cutoff"), Cutoff_Value = c(15L, 17L)),
class = "data.frame", row.names = c(NA, -2L))