Регулярные выражения работают здесь.В конечном итоге нам нужно что-то вроде:
grepl("^(11112|11113|11114)", x$NAICS)
, где нас интересуют три строки , начинающиеся NAICS
идентификаторы.(Я сократил это здесь для краткости.
Ваши данные, например, немного усечены:
x <- read.table(header=TRUE, text="
Index NAICS HS2
1 0.4074128 1111 010110
2 0.2858026 11111 010190
3 0.1103720 11112 010210
4 -0.8084129 111120 010290
5 0.5376827 111130 010310
6 0.6021241 11114 010391")
l <- c("11112", "11113", "11114")
Чтобы программно сделать это:
paste0("^(", paste(l, collapse="|"), ")")
# [1] "^(11112|11113|11114)"
Итак, мыможно сделать:
grepl(paste0("^(", paste(l, collapse="|"), ")"), x$NAICS)
# [1] FALSE FALSE TRUE TRUE TRUE TRUE
и в конечном итоге
x[grepl(paste0("^(", paste(l, collapse="|"), ")"), x$NAICS),]
# Index NAICS HS2
# 3 0.1103720 11112 10210
# 4 -0.8084129 111120 10290
# 5 0.5376827 111130 10310
# 6 0.6021241 11114 10391