У меня есть переменная a=0.01
Добавление строки к имени переменной
Я затем создать матрицу b<-matrix(data=NA,ncol=2,nrow=9)
Я хотел бы переименовать эту матрицу путем добавления значения, хранящегося в a
его имени.
Результаты должны быть b_0.01
У меня есть переменная a=0.01
Добавление строки к имени переменной
Я затем создать матрицу b<-matrix(data=NA,ncol=2,nrow=9)
Я хотел бы переименовать эту матрицу путем добавления значения, хранящегося в a
его имени.
Результаты должны быть b_0.01
Держу пари, есть более элегантные способы достичь того, что вам нужно, но это, кажется, работает:
assign(x = paste("b", a, sep = "_"), value = b)
Редактировать следующий @ комментарий Роланда:
rm(b)
Обратите внимание, что я задаю ваш вопрос в узком смысле. Как отмечалось как @Roland, так и @Paul Hiemstra, могут быть более общие аспекты рабочего потока, которые могут быть плодотворными и для рассмотрения.
Но это не переименование. Вы получаете два объекта. Я не уверен, что копия сделана в памяти сразу, но как только вы измените новый объект, вам понадобится в два раза больше памяти. По крайней мере, включите 'rm (b)'. – Roland
@Roland, спасибо за ваш комментарий! Я добавляю 'rm'. Я полностью согласен с тем, что это не переименование _per se_ - это была моя лучшая альтернатива. Я был бы рад видеть чистое решение переименования. И да, я поддерживаю ваш комментарий OP. – Henrik
Вы можете использовать assign
, чтобы это было сделано:
a = 0.01
b = matrix(data=NA,ncol=2,nrow=9)
assign(sprintf('b_%s', a), b)
b_0.01
В общем, я бы не создавать объекты данных, как это. Вместо этого я бы использовал list
для создания, хранения и управления группами объектов.
Каков ваш прецедент? Бьюсь об заклад, есть лучшая альтернатива тому, что вы пытаетесь сделать сейчас. – Roland