У меня есть куча вложенных табличек из пакета tidyrss. Данные выглядят так:
Что я пытаюсь сделать, так это взять четыре общих элемента из каждой таблицы и привести их в порядок, чтобы результат выглядел следующим образом:
До сих пор я пробовал unlist() и deframe(), и оба они просто создают общий беспорядок - и добавленный поворот заключается в том, что не все элементы списка являются табличками. Некоторые из них являются функциями, и я хочу их игнорировать. Каков наилучший подход tidyverse для решения этой задачи?
map_dfr
, кажется, делает то, что вы хотите! Он перебирает список и применяет функцию к каждому из них — в этом случае единственная «функция», которую мы хотим применить, — это возврат фрейма/таблицы данных, но это также позволяет нам пропустить функции:
clean_feed_df <- list(
data.frame(item_title=sample(letters, 3),
item_link=sample(letters, 3),
item_desc=sample(letters, 3),
item_date=sample(letters, 3)),
data.frame(item_title=as.character(sample(1:100, 5)),
item_link=as.character(sample(1:100, 5)),
item_desc=as.character(sample(1:100, 5)),
item_date=as.character(sample(1:100, 5))),
function(x)sum(x)
)
map_dfr(clean_feed_df, function(rssentry){
if (is(rssentry, "data.frame")){
return(rssentry)
}
})
который возвращает
item_title item_link item_desc item_date
1 s s u i
2 x d o x
3 t x d h
4 40 51 21 91
5 4 25 37 34
6 5 44 18 71
7 65 70 83 90
8 32 85 76 89
Можете ли вы дать нам URL-адрес, где вы получили фид?