首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合r中列表的组件集

组合r中列表的组件集
EN

Stack Overflow用户
提问于 2020-03-19 15:15:17
回答 1查看 34关注 0票数 0

我有一个包含按年分列的数据的列表。我想将这些组件组合成一个数据row,这是由行匹配的。示例列表:

代码语言:javascript
复制
    List [[1]]
    State Year   X   Y
    23     1971  etc  etc
    47     1971  etc  etc

    List[[2]]
    State Year   X   Y
    13     1972  etc etc
    23     1973  etc  etc
    47     1973  etc  etc

   etc....

   List[[45]]
     State Year   X   Y
     1     2017  etc etc
     2     2017 etc  etc
     3     2017 etc  etc
     1     2017  etc etc
    23     2017 etc  etc
    47     2017 etc  etc

我希望dataframe看起来像(我知道我将不得不浏览并删除一些额外的列:

代码语言:javascript
复制
    State   1971_X    1971_Y    1972_X    1972_Y....2018_X    2019_Y
    1         NA        NA       NA        NA         etc       etc
    2         NA        NA       etc       etc        etc       etc   
    3         etc       ect      etc       etc        etc       etc  
    ...
    50        NA        NA       etc        etc       etc       etc

我尝试了命令Outcomewanted=do.call("cbind", examplelist),但得到了消息

代码语言:javascript
复制
"Error in data.frame(..., check.names = FALSE) : 
  arguments imply differing number of rows: 36, 40, 20, 42, 38, 26, 17, 31, 35, 23, 33, 13, 29, 28, 32, 34, 41, 37, 43, 39, 30, 14, 10, 4, 7"

看来cbind.fill命令可能是一个选项,但已经退役了?谢谢你提前提供帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-19 15:26:45

您可以在进行reshape操作后使用do.call(rbind())

代码语言:javascript
复制
res <- reshape(do.call(rbind, lst), idvar="state", timevar="year", direction="wide")
res
#   state     x.1971    y.1971    x.1972      y.1972     x.1973     y.1973
# 1    23  1.3709584 0.3631284        NA          NA -0.1061245  2.0184237
# 2    24 -0.5646982 0.6328626        NA          NA  1.5115220 -0.0627141
# 3    13         NA        NA 0.4042683 -0.09465904         NA         NA

数据

代码语言:javascript
复制
lst <- list(structure(list(state = c(23, 24), year = c(1971, 1971), 
    x = c(1.37095844714667, -0.564698171396089), y = c(0.363128411337339, 
    0.63286260496104)), class = "data.frame", row.names = c(NA, 
-2L)), structure(list(state = c(13, 23, 24), year = c(1972, 1973, 
1973), x = c(0.404268323140999, -0.106124516091484, 1.51152199743894
), y = c(-0.0946590384130976, 2.01842371387704, -0.062714099052421
)), class = "data.frame", row.names = c(NA, -3L)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60760052

复制
相关文章

相似问题

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