如何在R中创建两个列表的最小列表?

时间:2016-11-13 00:04:12

标签: r list testing

我正在尝试根据线程How to make a great R reproducible example?在R中创建两个列表的最小列表,但它不会将列表列表作为基本示例。 想要采用以下结构的最小数据样本,其中B长度可以最小化但必须是异构的

List of 2
 $ :'data.frame':   541650 obs. of  2 variables:
  ..$ V1: num [1:541650] -0.21 -0.205 -0.225 -0.22 -0.21 -0.19 -0.205 -0.205 -0.205 -0.205 ...
  ..$ V2: num [1:541650] -0.245 -0.22 -0.2 -0.2 -0.195 -0.2 -0.19 -0.185 -0.18 -0.185 ...
 $ :'data.frame':   426098 obs. of  2 variables:
  ..$ V1: num [1:426098] -0.285 -0.285 -0.185 -0.285 -0.385 -0.305 -0.305 -0.125 -0.015 -0.285 ...
  ..$ V2: num [1:426098] -0.445 -0.6 -0.815 -0.665 -0.49 -0.68 -0.555 -0.755 -0.795 -0.405 ...

执行dput(files),您获得了太大的示例数据。 做reproduce(files),同样的情况。 我也试过了dput(head(files, 5)),但是到了一个列表然后只返回5位数。 伪代码

  • 结构列表A中的两个列表B(1,2),其中B(1,2)的长度变化,

    length(B(1)_i) = length(B(2)_i) 
    
  • 最小化B(1,2)的长度,但保持后续Bs的异质长度

通缉输出结构

List of 2
$ data.frame 11 obs. of 2 variables 
    $ V1: num [1:11] -0.21 -0.205 ...
    $ V2: num [1.11] -0.245 -0.22 ...
$ data.frame 7 obs. of 2 variables 
    $ V1: num [1:7] -0.285 -0.286 ...
    $ V2: num [1.7] -0.445 -0.6 ...

R:3.3.1
操作系统:Debian 8.5

1 个答案:

答案 0 :(得分:2)

这可以通过几种方式完成。创建两个data.frame并将其放在list

lst <- list(data.frame(V1 = rnorm(11), V2 = rnorm(11)), 
             data.frame(V1 = rnorm(7), V2 = rnorm(7))) 

或者如果要创建许多data.frame,请使用循环

lst1 <- lapply(c(11, 7), function(n) data.frame(V1 = rnorm(n), 
                               V2 = rnorm(n)))