2012-06-25 4 views
5

Существует ли тип R, эквивалентный типу структуры Matlab?R эквивалентно структуре MATLAB?

У меня есть несколько названных векторов, и я пытаюсь их хранить в кадре данных. В идеале я бы просто получил доступ к одному элементу объекта и возвратил бы названные векторы (например, структуру в Matlab). Я считаю, что использование фрейма данных неверно, поскольку оно может хранить значения названных векторов, но не имена, когда они отличаются от одного вектора к другому.

В целом, возможно ли хранить кучу разных объектов в одном в R?

Редактировать: Поскольку Джоран сказал, что я думаю, что list выполняет эту работу.

l = list() 
l$vec1 = namedVector1 
l$vec2 = namedVector2 
... 

Если у меня есть список имен

name1 = 'vec1' 
name2 = 'vec2' 

есть ли способ для переводчика, чтобы понять, что, когда я использую имя переменной, как имя1, я не имею в виду имя переменной а его содержание? Я пробовал get(name1), но он не работает.

+3

Я уверен, что именно в Matlab вы говорите, но ваши варианты в R в основном: векторы, списки, матрицы, кадры данных или (если вы хотите получить фантазии). Мое предположение, если вы хотите список. – joran

+0

@joran: [Структура Matlab] (http://www.mathworks.nl/help/techdoc/ref/struct.html) – Junuxx

+0

Я уверен, что @joran прав (о 'list', что вы хотите), но меня смущает бит о «но не именах, когда они отличаются от одного вектора к другому». К каким именам вы обращаетесь? –

ответ

5

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

l <- list(a= 1:3,b = 1:10) 
> ind <- "a" 
> l[[ind]] 
[1] 1 2 3 

А именно, вам придется явно использовать [[.

+0

И FWIW, 'get (ind, pos = l)' также работает. (Не уверен, что это было бы лучше, чем 'l [[ind]]', хотя.) –

+0

'get (ind, pos = l)' будет возвращать '' a '', но как использовать это для доступа к l $ a '? – Youcha

+0

@Youcha Нет, на самом деле, он возвращает то же самое (или, по крайней мере, должен, и делает для меня). – joran

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