2016-07-21 2 views
0

У меня есть один набор объектов data.frame и один объект data.frame. Я пытаюсь собрать их в списке по заказу. Я попробовал unlist для такого рода манипуляций, но он не даст корректного вывода в конце. Может ли кто-нибудь дать мне возможные идеи для этого? Большое спасибоrelist объект data.frame & добавьте его в существующий список по заказу

моделируемой данные:

bleh <- data.frame(
    start=seq(1, by=9, len=18), end=seq(6, by=9, len=18), 
    ID=letters[seq(1:18)], score=sample(1:25, 18, replace = FALSE)) 

d.list <- list(
    foo <- data.frame(
    start=seq(2, by=11, len=20), end=seq(8, by=11, len=20), 
    ID=letters[seq(1:20)], score=sample(1:25, 20, replace = FALSE)), 
    bar <- data.frame(
    start=seq(4, by=11, len=25), end=seq(9, by=11, len=25), 
    ID=letters[seq(1:25)], score=sample(1:25, 25, replace = FALSE)) 
) 

желаемый результат:

out <- list(blesh, d.list[1], d.list[2]) 

Если я пониженная на d.list и перекроить весь объект в списке, это не правильно по концепции, так как unlist метод будет сгладить d.list как один объект, это я прекратил это. Знает ли кто-нибудь об этом трюк такого рода манипуляций?

ответ

1

Вы можете использовать метод concatenationc после переноса объекта единого кадра данных в список. c, когда применяется к спискам, будет сглаживать списки на первом уровне, а затем объединить подсписки вместе, что должно дать вам то, что вам нужно.

out <- c(list(bleh), d.list) 

lapply(out, head, 3) 
# [[1]] 
# start end ID score 
# 1  1 6 a 16 
# 2 10 15 b 18 
# 3 19 24 c  7 

# [[2]] 
# start end ID score 
# 1  2 8 a 23 
# 2 13 19 b  1 
# 3 24 30 c 16 

# [[3]] 
# start end ID score 
# 1  4 9 a 16 
# 2 15 20 b  8 
# 3 26 31 c 10 
+1

Большое спасибо. Этот трюк, безусловно, работает очень хорошо. Cheers – user88911

+0

@ user88911 Нет проблем. Рад, что это помогает. :) – Psidom

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