2013-03-25 2 views
2

Я хотел бы создать список объектов с возможными дублируемыми именами. Например:Как получить элемент списка с тем же именем?

l <- list("a"=1:4, "a"=2:3, "b"=1) 

Теперь я хочу, чтобы получить элементы л, имя которого «а» (л [1] и л [2], в данном случае). Есть ли какой-нибудь лаконичный способ сделать это вместо того, чтобы перебирать имена (l)? Благодарю.

+1

Вы были бы оскорблены, если бы кто-то заглядывал и спрашивал, какова конечная цель? –

+0

@RicardoSaporta Моя цель - создать древовидную структуру для хранения иерархических данных. И некоторые имена узлов можно дублировать. У вас есть идея лучше, чем список списков? Благодарю. – Kid

ответ

7

Вы можете использовать основные Подменю для этого:

> l[names(l) == "a"] 
$a 
[1] 1 2 3 4 

$a 
[1] 2 3 

(Кстати, l фанки персонажу использовать сам по себе с помощью скриптов из-за того, как легко может быть неправильно истолкованы для 1) ,

+4

С предупреждением 'here be dragons', что дубликаты имен являются нестандартными, и вы не можете ожидать, что функция' extract' по имени будет работать последовательно. – mnel

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