【问题标题】:Make all nested lists equal to the length to the smallest(minimum length'ed) list in R使所有嵌套列表等于 R 中最小(最小长度)列表的长度
【发布时间】:2020-07-26 00:23:12
【问题描述】:

我有一个问题与在 R 中使用 NA 值填充嵌套列表不同。假设我有一个包含 3 个列表的嵌套列表:

mylist <- list(
  A = as.data.frame(matrix(1:9, ncol=3, byrow=TRUE, dimnames=list(1:3, letters[1:3]))),
  B = as.data.frame(matrix(10:21, ncol=3, byrow=TRUE, dimnames=list(1:4, letters[1:3]))),
  C = as.data.frame(matrix(22:36, ncol=3, byrow=TRUE, dimnames=list(1:5, letters[1:3])))
)

$A 
  a b c 
1 1 2 3 
2 4 5 6 
3 7 8 9


$B 
  a  b  c 
1 10 11 12 
2 13 14 15 
3 16 17 18 
4 19 20 21

$C 
  a  b  c 
1 22 23 24 
2 25 26 27 
3 28 28 30 
4 31 32 33 
5 34 35 36

如何在 R 中编写代码,让我得到这样的输出

$A 
  a b c 
1 1 2 3 
2 4 5 6 
3 7 8 9


$B 
  a  b  c 
1 10 11 12 
2 13 14 15 
3 16 17 18 


$C 
  a  b  c 
1 22 23 24 
2 25 26 27 
3 28 28 30 

【问题讨论】:

    标签: r list lapply nested-lists


    【解决方案1】:

    你可以得到最少的行数

    min(sapply(mylist, nrow))
    

    然后您可以将其传递给像head() 这样的函数,以便每个data.frame 只保留那么多行。您可以通过

    一步完成所有操作
    lapply(mylist, head, min(sapply(mylist, nrow)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多