2013-08-30 5 views
0

У меня есть переменная a=0.01Добавление строки к имени переменной

Я затем создать матрицу b<-matrix(data=NA,ncol=2,nrow=9)

Я хотел бы переименовать эту матрицу путем добавления значения, хранящегося в a его имени.

Результаты должны быть b_0.01

+2

Каков ваш прецедент? Бьюсь об заклад, есть лучшая альтернатива тому, что вы пытаетесь сделать сейчас. – Roland

ответ

3

Держу пари, есть более элегантные способы достичь того, что вам нужно, но это, кажется, работает:

assign(x = paste("b", a, sep = "_"), value = b) 

Редактировать следующий @ комментарий Роланда:

rm(b) 

Обратите внимание, что я задаю ваш вопрос в узком смысле. Как отмечалось как @Roland, так и @Paul Hiemstra, могут быть более общие аспекты рабочего потока, которые могут быть плодотворными и для рассмотрения.

+0

Но это не переименование. Вы получаете два объекта. Я не уверен, что копия сделана в памяти сразу, но как только вы измените новый объект, вам понадобится в два раза больше памяти. По крайней мере, включите 'rm (b)'. – Roland

+0

@Roland, спасибо за ваш комментарий! Я добавляю 'rm'. Я полностью согласен с тем, что это не переименование _per se_ - это была моя лучшая альтернатива. Я был бы рад видеть чистое решение переименования. И да, я поддерживаю ваш комментарий OP. – Henrik

3

Вы можете использовать assign, чтобы это было сделано:

a = 0.01 
b = matrix(data=NA,ncol=2,nrow=9) 
assign(sprintf('b_%s', a), b) 
b_0.01 

В общем, я бы не создавать объекты данных, как это. Вместо этого я бы использовал list для создания, хранения и управления группами объектов.

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