2015-03-01 2 views
1

структуру списка как последуйте (список продолжается с той же структурой):Извлечение данных из подсписка в dataframe

> str(parsedData)  
> List of 1658  
> $ :List of 2  
> ..$ Date  : chr "2010-08-16"  
> ..$ Volatility: num 11.1  
> $ :List of 2  
> ..$ Date  : chr "2010-08-17"  
> ..$ Volatility: num 26.2 

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

> parsedData$Date  
>NULL 

кто-нибудь может сказать мне, как извлечь только дату и Волатильность из этого списка (особенно без названия) и поместить их все в том же dataframe, как это? Благодаря!

Date   Volatility  
2010-08-16 11.1  
2010-08-17 26.2  
...    ... 

(это первый раз, когда я спрашиваю вопрос, извините за редактированием ошибки :))

+0

@Метрики о! но как извлечь все из них и поместить min data.frame? –

+0

См. Ответ. – Metrics

+0

'rlist :: list.stack (parsedData)' или 'data.table :: rbindlist (parsedData)' – Khashaa

ответ

0

Не тестировалось:

setNames(data.frame(do.call(rbind,lapply(1:length(parsedData),function(i)cbind(parsedData[[i]][1],parsedData[[i]][2])))),c("Date","Volatility")

ИЛИ:

setNames(data.frame(do.call(rbind,lapply(1:length(parsedData),function(i)t(parsedData[[i]][1:2])))),c("Date","Volatility"))

+0

Спасибо, это работает! Но может ли сказать, что означает «функция (i)»? –

+0

Нет проблем. 'i' указывает номер итерации (который идет от 1 до длины вашего списка). Вы можете использовать любой алфавит или слово вместо 'i', чтобы обозначить номер итерации. – Metrics