【问题标题】:Extract the data from the sublist into dataframe将子列表中的数据提取到数据框中
【发布时间】:2015-03-01 11:13:01
【问题描述】:

列表结构如下(列表结构相同):

> 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

任何人都可以告诉我如何从这个列表中只提取日期和波动率(尤其是没有标题)并将它们全部放在同一个数据框中,就像这样?谢谢!

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

(这是我第一次提问,如有编辑错误,请见谅:))

【问题讨论】:

  • @Metrics 哦,对了!但是如何提取所有这些并放入最小 data.frame?
  • 请看答案。
  • rlist::list.stack(parsedData)data.table::rbindlist(parsedData)

标签: r list dataframe extract sublist


【解决方案1】:

未测试:

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"))

【讨论】:

  • 谢谢,它有效!但是你能告诉我“function(i)”是什么意思吗?
  • 没问题。 i 表示迭代次数(从 1 到列表的长度)。您可以使用任何字母或单词代替i 来表示迭代次数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2021-10-06
  • 2012-03-29
  • 2021-01-11
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
相关资源
最近更新 更多