Вы можете использовать select_at
, но строка поиска у вас не стандартная. Так что вам придется поработать над этим.
library(dplyr)
library(rlang)
library(purrr)
colnames <- map2("column",1:7,paste0) %>% unlist
data <- as.data.frame(matrix(0,ncol=7,nrow=2))
colnames(data) <- colnames
select_at(data,colnames)
# column1 column2 column3 column4 column5 column6 column7
#1 0 0 0 0 0 0 0
#2 0 0 0 0 0 0 0
Здесь я использую purrr
и rlang
для удобства. Вы также можете использовать базовые функции R
searchstring <- "column1:column7"
replacedstring <- gsub("column","",searchstring)
sequence <- eval_tidy(parse_expr(replacedstring))
parsedcolumns <- map_chr(sequence,~ paste0("column",.x))
select_at(data,parsedcolumns)
column1 column2 column3 column4 column5 column6 column7
1 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0
Обратите внимание, что оценка произвольного кода, предоставленного пользователями, опасна. Я бы порекомендовал найти другой способ ввода данных пользователем.