test[, grepl("^NAT\\d$", names(test))]
NAT1 NAT2 NAT3
1 1 2 3
Если после NAT
имеется более 1 числа, вы можете использовать квантификатор +
или, если вы хотите выбрать определенное количество чисел или определенный диапазон чисел, квантификацию с помощью { }
:
test[, grepl("^NAT\\d+$", names(test))] # matches one or more numbers
test[, grepl("^NAT\\d{2}$", names(test))] # matches exactly 2 numbers
test[, grepl("^NAT\\d{2,4}$", names(test))] # matches the range of 2 to 4 numbers
test[, grepl("^NAT\\d{2,}$", names(test))] # matches the range of 2 to any number of numbers
Также вы можете использовать str_detect
из пакета stringr
:
test[, str_detect(colnames(test), "^NAT\\d$")]
NAT1 NAT2 NAT3
1 1 2 3