В соответствии с моим комментарием выше, если вы хотите получить имена, которые конца с c
вы хотите, чтобы получить их через
names(DF)[grepl("c$", names(DF))]
, а затем получить значение через
DF[, names(DF)[grepl("c$", names(DF))]]
(или только значение TRUE/FALSE индекс:
DF[, grepl("c$", names(DF))]
)
Update:
OP изменил первоначальный вопрос, так что ответ теперь просто
DF[, "c"]
извлечь c
колонку
> DF <- data.frame(c=c(1,2,3), ce=c(2,3,4), ac=c(3,4,5))
> DF
c ce ac
1 1 2 3
2 2 3 4
3 3 4 5
> DF[,"c"]
[1] 1 2 3
Update 2: OP снова изменил исходный вопрос, так что ответ теперь следующий:
DF <- data.frame(x.c=c(1,2,3), y.ce=c(2,3,4), z.ac=c(3,4,5))
> DF
x.c y.ce z.ac
1 1 2 3
2 2 3 4
3 3 4 5
> DF[, names(DF)[grepl("\\.c$", names(DF))]]
[1] 1 2 3
Почему не просто 'DF [, c (" c "," tg ")]'? – rbm
Поскольку cols в моем DF имеют более сложные имена, например. abc.c и cde.ce, и я пытаюсь выбрать только те, у которых есть c в конце имени. – Try
Вы можете использовать 'grepl (" \\ b (c | tg) \\ b ", имена (DF))' – akrun