簡體   English   中英

如何在R中創建兩個列表的最小列表?

[英]How to create Minimal List of two Lists in R?

我試圖基於線程在R中創建兩個列表的最小列表。 如何制作出色的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位數字。 偽代碼

  • 兩個列表B(1,2)的結構列表A,其中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

這可以通過兩種方法來完成。 創建兩個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)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM