首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何合并列表中的帧?

如何合并列表中的帧?
EN

Stack Overflow用户
提问于 2015-10-12 04:02:50
回答 1查看 33关注 0票数 0

我有一个列表data,它包含10个元素(股票1..10),每个元素看起来像这样:

代码语言:javascript
复制
test <- data$Stock1
> head(test)
    names   date_tmp efficiency
1  Stock1 2010-11-04  0.5674100
11 Stock1 2010-11-05  0.2945661
21 Stock1 2010-11-08  0.6318756
31 Stock1 2010-11-09  0.3203930
41 Stock1 2010-11-10  0.8075944
51 Stock1 2010-11-11  1.0000000

我想合并这个列表中所有框架的列。我有以下代码,它们是我从其他地方改编的:

代码语言:javascript
复制
new_frame <- do.call(cbind,Map(cbind, lapply(data, as.data.frame)))

我的问题是,最终结果看起来非常混乱:

代码语言:javascript
复制
  Stock1.names Stock1.date_tmp Stock1.efficiency Stock10.names Stock10.date_tmp Stock10.efficiency Stock2.names
1        Stock1      2010-11-04         0.5674100       Stock10       2010-11-04          1.0000000       Stock2
11       Stock1      2010-11-05         0.2945661       Stock10       2010-11-05          1.0000000       Stock2
21       Stock1      2010-11-08         0.6318756       Stock10       2010-11-08          1.0000000       Stock2
31       Stock1      2010-11-09         0.3203930       Stock10       2010-11-09          1.0000000       Stock2
41       Stock1      2010-11-10         0.8075944       Stock10       2010-11-10          0.0000000       Stock2
51       Stock1      2010-11-11         1.0000000       Stock10       2010-11-11          0.8065724       Stock2
   Stock2.date_tmp Stock2.efficiency Stock3.names Stock3.date_tmp Stock3.efficiency Stock4.names Stock4.date_tmp
1       2010-11-04                 1       Stock3      2010-11-04                 1       Stock4      2010-11-04
11      2010-11-05                 1       Stock3      2010-11-05                 0       Stock4      2010-11-05
21      2010-11-08                 1       Stock3      2010-11-08                 1       Stock4      2010-11-08
31      2010-11-09                 0       Stock3      2010-11-09                 1       Stock4      2010-11-09
41      2010-11-10                 1       Stock3      2010-11-10                 1       Stock4      2010-11-10
51      2010-11-11                 1       Stock3      2010-11-11                 1       Stock4      2010-11-11
   Stock4.efficiency Stock5.names Stock5.date_tmp Stock5.efficiency Stock6.names Stock6.date_tmp
1                  1       Stock5      2010-11-04         0.5218197       Stock6      2010-11-04
11                 1       Stock5      2010-11-05         0.6762827       Stock6      2010-11-05
21                 1       Stock5      2010-11-08         0.7991099       Stock6      2010-11-08
31                 1       Stock5      2010-11-09         0.5613898       Stock6      2010-11-09
41                 1       Stock5      2010-11-10         0.5531570       Stock6      2010-11-10
51                 1       Stock5      2010-11-11         0.8151261       Stock6      2010-11-11
   Stock6.efficiency Stock7.names Stock7.date_tmp Stock7.efficiency Stock8.names Stock8.date_tmp
1          0.5498426       Stock7      2010-11-04                 1       Stock8      2010-11-04
11         0.5534652       Stock7      2010-11-05                 1       Stock8      2010-11-05
21         0.3897874       Stock7      2010-11-08                 1       Stock8      2010-11-08
31         0.4405610       Stock7      2010-11-09                 1       Stock8      2010-11-09
41         0.8180463       Stock7      2010-11-10                 1       Stock8      2010-11-10
51         0.1491688       Stock7      2010-11-11                 1       Stock8      2010-11-11
   Stock8.efficiency Stock9.names Stock9.date_tmp Stock9.efficiency
1                  0       Stock9      2010-11-04         0.2756548
11                 1       Stock9      2010-11-05         0.5204240
21                 1       Stock9      2010-11-08         0.0000000
31                 1       Stock9      2010-11-09         0.7940347
41                 1       Stock9      2010-11-10         0.6393697
51                 1       Stock9      2010-11-11         0.0000000
> 

我想只有1列包含日期和效率分数只命名为"Stock1...10“的行。我认为在上面发布的循环函数中有一种更有效的方法来实现这一点,而不是试图从新的数据帧中删除额外的东西。任何帮助我们都将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2015-10-12 09:16:40

只需尝试rbind即可:

代码语言:javascript
复制
new_frame <- data.frame(do.call(rbind,data),row.names = NULL)

你会得到类似这样的结果:

new_frame names date_tmp efficiency 1 Stock1 2013-01-01 0.5450818 2 Stock1 2013-01-01 0.6710206 ... 9 Stock1 2013-01-01 0.5147114 ... 18 Stock2 2013-02-01 0.6650112 19 Stock3 2013-03-01 0.6624025

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33069534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档