2015-08-18 1 views
0

Моя проблема очень проста, хотя я не могу найти эффективный способ ее решения. Я хочу загрузить новый элемент в первую позицию списка, а затем переместить остальные элементы.Как сместить элементы списка в R

К примеру, я получил список L из 3-х элементов

L=list("a","b","c") 
[[1]] 
[1] "a" 

[[2]] 
[1] "b" 

[[3]] 
[1] "c" 

Я получил строку «г», и я хочу, чтобы загрузить его в первый элемент моего списка L, поэтому ожидается, новый список NL будет выглядеть так:

[[1]] 
[1] "z" 

[[2]] 
[1] "a" 

[[3]] 
[1] "b" 

[[4]] 
[1] "c" 

Кто-нибудь знает, как это сделать элегантным способом? Благодаря!!

+1

'c (список ('z'), L)' – rawr

+0

Упс! Извините, я не нашел его из-за моего бедного английского, я думаю. –

ответ

1

Это возможно, но довольно дорого, чтобы использовать append функцию:

append(list("z"), L) 

Тем не менее, расширение структуры данных в виде простого R является то, что вы хотите, чтобы избежать большую часть времени. Если у вас есть алгоритм, требующий такого рода операций, лучше использовать RCpp.

В противном случае лучше предварительно выделить большую структуру и просто заполнить значения.

+1

Я думаю, что ты задумался над этим вопросом – rawr

+0

append в порядке, на самом деле не нужно RCpp –

+0

@rawr Может быть, немного. Как-то простой факт, что 'list' на самом деле не списки, вызывает у меня тревогу :) – zero323