2016-10-09 5 views
-1

У меня есть переменные от c1 до c24, всего 24 переменных. Я хочу сделать что-то вроде:Как подключить несколько переменных к одному вектору

b <- c(c1,c2,c3,c4,c5,c6,c7,c8,c9, 
     c10,c11,c12,c13,c14,c15,c16,c17, 
     c18,c19,c20,c21,c22,c23,c24) 

Как я могу это сделать? Он не работает, чтобы использовать что-то вроде b <- c(c 1:c24), R только соединяет два значения (c1 и c24) в этом случае, но я хочу поместить все 24 значения в этот вектор.

ответ

2

Вы можете сделать это с помощью lapply и get:

c1 <- c2 <- c3 <- c4 <- 1 
unlist(     ## convert from list to vector 
    lapply(    
     paste0("c",1:4), ## names of variables 
     get)    ## retrieve variable by name 
) 
## [1] 1 1 1 1 

В общем, было бы хорошей идеей, чтобы смотреть дальше в рабочий процесс и посмотреть, если это возможно, чтобы генерировать эти переменные в списке в первое место ...

+0

спасибо. Это очень полезно. Причина, по которой я получаю несколько этих переменных, заключается в том, что я использую цикл for для генерации многих переменных. Большое спасибо, это работает! – Tom

+0

Или без 'lapply', используя что-то вроде' unlist (mget (ls (pattern = "c \\ d +"))) ' –

+0

@David, спасибо. ваш код также работает. Тем не менее, последовательность - это что-то вроде «c1, c10, c11 ...», возможно ли, что порядок будет «c1, c2, c3, c4, ..» – Tom

Смежные вопросы