У меня есть фрейм данных и вы хотите, чтобы grep имена столбцов соответствовали определенным шаблонам. У меня есть четыре набора шаблонов:grep pattern для имен столбцов
# set 1 (underscore, no A)
cat1_1
cat12_12
# set 2 (underscore, A)
cat4_4A
cat18_18A
# set 3 (no underscore, no p)
dog2
dog12
# set 4 (no underscore, p)
dog2p
dog12p
Мой фактический кадр данных содержит разное количество столбцов в наборе, но я показываю только две колонки в комплект в этом примере для простоты.
ex <- data.frame(cat1_1=c("1a", "1a"),
cat12_12=c("1b", "1b"),
cat4_4A=c("2a", "2a"),
cat18_18A=c("2b", "2b"),
dog2=c("3a", "3a"),
dog12=c("3b", "3b"),
dog2p=c("4a", "4a"),
dog12p=c("4b", "4c"))
ex
# cat1_1 cat12_12 cat4_4A cat18_18A dog2 dog12 dog2p dog12p
#1 1a 1b 2a 2b 3a 3b 4a 4b
#2 1a 1b 2a 2b 3a 3b 4a 4c
Я хочу Grep names(ex)
так что я захватить весь набор 1 переменных, то по отдельности, все установлены 2 переменных, и так далее. Так, например, grep(PATTERN, names(ex))
для набора 1 должен возвращать:
[1] "cat1_1" "cat12_12"
Я ценю помощь с шаблоном Grep для каждого набора. Одним из ограничений является то, что я не хочу изменять имена столбцов.
спасибо, @akrun! если вы не возражаете, не могли бы вы объяснить логику первых двух? надеюсь, я смогу использовать этот пример для обобщения в других ситуациях. –
замечательный. это очень ясно. Я действительно ценю твою помощь. –