2015-09-02 4 views
1

У меня есть проблема, когда я пытаюсь создать список в R. У меня есть 2 векторовСоздание списка в R из 2 векторов

a <- c(1:7) 
b <- c("A", "A", "B", "B", "B", "C", "C") 

Второй вектор (б) упорядоченное фактор. Я пытаюсь создать список, который будет иметь следующую форму:

[A] 
1, 2 

[B] 
3, 4, 5 

[C] 
6, 7 

ie. Я хочу поместить элементы первого вектора в список с каждым блоком списка, соответствующим уровню фактора второго вектора. Я надеюсь, что было достаточно ясно, спасибо

+3

Как и разбиваться (а, б) '? –

+0

@Pascal argh !!! Не уверен, стоит ли отправлять сообщения. –

+1

@DavidArenburg :) Пожалуйста, держите ответ. –

ответ

3

Кажется, вы могли бы просто использовать split здесь

split(a, b) 
# $A 
# [1] 1 2 
# 
# $B 
# [1] 3 4 5 
# 
# $C 
# [1] 6 7 
+0

Большое спасибо за ответ. Однако результирующий список, упорядоченный по алфавиту в соответствии со вторым столбцом (тот, который содержит факторы), упорядочен. Есть ли способ создать список, используя split(), чьи блоки не упорядочены по алфавиту? Я проверил? Split() и нет опции для упорядоченного или не упорядоченного списка. Я хочу, чтобы порядок списка был тем, который я даю второй колонке. Заранее спасибо – Link

+0

Не понимаю. Какой порядок? Это дает идентичный результат для вашего желаемого выхода. –

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