如何从List A中筛选出包含List B年份值的元素?
可以实现
直接用R语言的字符串匹配功能就能提取出目标元素,具体操作如下:
首先定义两个列表:
list_a <- c("Data 2018.xlsx","Data 2014.xlsx","Regular","Data 2019.xlsx","Data 2020.xlsx") list_b <- c("2022","2021","2020","2019","2018")
接下来构造匹配规则,从List B中筛选出2018、2019、2020这三个目标年份,再从List A中提取包含这些年份的元素:
# 从List B中提取目标年份 target_years <- list_b[list_b %in% c("2018", "2019", "2020")] # 构造成正则匹配模式,用|分隔表示匹配任意一个年份 pattern <- paste(target_years, collapse = "|") # 筛选List A中符合条件的元素 result <- list_a[grepl(pattern, list_a)] # 输出结果 result
运行上述代码后,输出结果即为:
[1] "Data 2018.xlsx" "Data 2019.xlsx" "Data 2020.xlsx"
原理说明:grepl()函数会逐个检查List A的元素是否包含pattern中的任意一个年份,返回布尔值向量,以此作为索引就能精准筛选出目标元素。
内容的提问来源于stack exchange,提问作者user35131
相关产品推荐
相关产品推荐

