R как делать присваивания и ссылаться на имя переменной, преобразованное из строки - PullRequest
1 голос
/ 04 февраля 2020

Мой вопрос встроен в приведенный ниже код.

Я создал имена переменных из символьных строк, и я могу присвоить значения этим именам переменных (в нашем случае это список), но я не могу выполнять любые простые операции со списками, если я не использую созданные имена переменных, чего я не хочу делать. Как я могу сделать простые операции с этими списками, например, в примере cbind?

id = c(96, 99)
namevector = paste("id.", per, sep = "")
assign(namevector[1],c(2,3))
assign(namevector[2],c(52,53))
cbind(id.96, id.99) # This is the desired answer. How do I get it, without using "id.96" or "id.99"?
#here are ideas that did not work 
cbind(namevector[1], namevector[2])
cbind(as.name(namevector[1]), as.name(namevector[2])) 


1 Ответ

0 голосов
/ 04 февраля 2020

Мы можем использовать mget для возврата значений объектов в list, а затем cbind list элементов в один набор данных с do.call

do.call(cbind, mget(namevector))
#      id.96 id.99
#[1,]     2    52
#[2,]     3    53

при условии per это id

...