簡體   English   中英

從數據框列表創建數據框

[英]Create dataframe from list of dataframe

我有一個列表myList含有16個data.frames

List of 16

    $ dataframe1           :'data.frame':   20 obs. of  60 variables:
      ..$ Stat            : Factor w/ 16 levels "a","b",..: 16 16 16 16 16 16 16 16 16 16 ...
      ..$ P10             : num [1:31] 1 3 2 2 4 8 0 4 2 5 ...
      ..$ R               : num [1:31] NA NA NA NA NA NA NA NA NA NA ...
      ..$ S               : num [1:31] 0 7 7 1 5 9 3 9 6 2 ...

    $ dataframe2           :'data.frame':   20 obs. of  60 variables:
      ..$ Stat            : Factor w/ 16 levels "c","d",..: 16 16 16 16 16 16 16 16 16 16 ...
      ..$ P10             : num [1:31] 2 1 2 2 5 6 7 2 2 5 ...
      ..$ R               : num [1:31] NA 1 NA NA 2 NA 4 NA NA NA ...
      ..$ S               : num [1:31] 10 2 4 1 5 8 8 8 1 2 ...
...
..

我需要每列的mean並將結果保存在data.frame

       dataframe1     dataframe2     ....
 Stat  NA             NA
 P10   6              7
 R     NA             3
 S     12             14
 ...   ...            ...             ...

我有這個lapply(myList$variable1, mean) ,它向我返回該列表中一個data.frame的結果。 ldply(myList, data.frame)不包含mean函數。 我將如何對整個列表進行處理並將其放入一個data.frame

我們可以使用嵌套的sapply 第一個循環遍歷list ,第二個循環遍歷data.frame的列,根據列是否為numeric的條件,我們得到mean或返回NA。

sapply(myList, function(x) sapply(x, function(y)
              if(is.numeric(y)) mean(y, na.rm=TRUE) else NA))

暫無
暫無

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

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