Às 00:39 de 05/06/2026, Sorkin, John escreveu:
Rui,
Thank you for helping me convert my R object into a dataframe. You wanted to 
see the output of dput(results_by_date[1:2]). The data structure dput produced 
follows:

structure(list(`2020-08-14` = list(list(criticalvalue = 0.1,
     NumPeopleExposed = 0L), list(criticalvalue = 0.2, NumPeopleExposed = 0L),
     list(criticalvalue = 0.3, NumPeopleExposed = 0L), list(criticalvalue = 0.4,
         NumPeopleExposed = 0L)), `2020-08-15` = list(list(criticalvalue = 0.1,
     NumPeopleExposed = 1L), list(criticalvalue = 0.2, NumPeopleExposed = 0L),
     list(criticalvalue = 0.3, NumPeopleExposed = 0L), list(criticalvalue = 0.4,
         NumPeopleExposed = 0L)), `2020-08-16` = list(list(criticalvalue = 0.1,
     NumPeopleExposed = 15L), list(criticalvalue = 0.2, NumPeopleExposed = 6L),
     list(criticalvalue = 0.3, NumPeopleExposed = 6L), list(criticalvalue = 0.4,
         NumPeopleExposed = 6L)), `2020-08-17` = list(list(criticalvalue = 0.1,
     NumPeopleExposed = 60L), list(criticalvalue = 0.2, NumPeopleExposed = 26L),
     list(criticalvalue = 0.3, NumPeopleExposed = 9L), list(criticalvalue = 0.4,
         NumPeopleExposed = 3L))), dim = 4L, dimnames = list(`data[, "Date"]` = 
c("2020-08-14",
"2020-08-15", "2020-08-16", "2020-08-17")))
$`2020-08-14`
$`2020-08-14`[[1]]
$`2020-08-14`[[1]]$criticalvalue
[1] 0.1

$`2020-08-14`[[1]]$NumPeopleExposed
[1] 0


$`2020-08-14`[[2]]
$`2020-08-14`[[2]]$criticalvalue
[1] 0.2

$`2020-08-14`[[2]]$NumPeopleExposed
[1] 0


$`2020-08-14`[[3]]
$`2020-08-14`[[3]]$criticalvalue
[1] 0.3

$`2020-08-14`[[3]]$NumPeopleExposed
[1] 0


$`2020-08-14`[[4]]
$`2020-08-14`[[4]]$criticalvalue
[1] 0.4

$`2020-08-14`[[4]]$NumPeopleExposed
[1] 0



$`2020-08-15`
$`2020-08-15`[[1]]
$`2020-08-15`[[1]]$criticalvalue
[1] 0.1

$`2020-08-15`[[1]]$NumPeopleExposed
[1] 1


$`2020-08-15`[[2]]
$`2020-08-15`[[2]]$criticalvalue
[1] 0.2

$`2020-08-15`[[2]]$NumPeopleExposed
[1] 0


$`2020-08-15`[[3]]
$`2020-08-15`[[3]]$criticalvalue
[1] 0.3

$`2020-08-15`[[3]]$NumPeopleExposed
[1] 0


$`2020-08-15`[[4]]
$`2020-08-15`[[4]]$criticalvalue
[1] 0.4

$`2020-08-15`[[4]]$NumPeopleExposed
[1] 0



$`2020-08-16`
$`2020-08-16`[[1]]
$`2020-08-16`[[1]]$criticalvalue
[1] 0.1

$`2020-08-16`[[1]]$NumPeopleExposed
[1] 15


$`2020-08-16`[[2]]
$`2020-08-16`[[2]]$criticalvalue
[1] 0.2

$`2020-08-16`[[2]]$NumPeopleExposed
[1] 6


$`2020-08-16`[[3]]
$`2020-08-16`[[3]]$criticalvalue
[1] 0.3

$`2020-08-16`[[3]]$NumPeopleExposed
[1] 6


$`2020-08-16`[[4]]
$`2020-08-16`[[4]]$criticalvalue
[1] 0.4

$`2020-08-16`[[4]]$NumPeopleExposed
[1] 6



$`2020-08-17`
$`2020-08-17`[[1]]
$`2020-08-17`[[1]]$criticalvalue
[1] 0.1

$`2020-08-17`[[1]]$NumPeopleExposed
[1] 60


$`2020-08-17`[[2]]
$`2020-08-17`[[2]]$criticalvalue
[1] 0.2

$`2020-08-17`[[2]]$NumPeopleExposed
[1] 26


$`2020-08-17`[[3]]
$`2020-08-17`[[3]]$criticalvalue
[1] 0.3

$`2020-08-17`[[3]]$NumPeopleExposed
[1] 9


$`2020-08-17`[[4]]
$`2020-08-17`[[4]]$criticalvalue
[1] 0.4

$`2020-08-17`[[4]]$NumPeopleExposed
[1] 3


THANK YOU
John

John David Sorkin M.D., Ph.D.
Professor of Medicine, University of Maryland School of Medicine;
Associate Director for Biostatistics and Informatics, Baltimore VA Medical 
Center Geriatrics Research, Education, and Clinical Center;
Former PI Biostatistics and Informatics Core, University of Maryland School of 
Medicine Claude D. Pepper Older Americans Independence Center;
Senior Statistician University of Maryland Center for Vascular Research;

Division of Gerontology, Geriatrics and Palliative Medicine,
10 North Greene Street
GRECC (BT/18/GR)
Baltimore, MD 21201-1524
Cell phone 443-418-5382





________________________________________
From: Rui Barradas <[email protected]>
Sent: Thursday, June 4, 2026 5:19 PM
To: Sorkin, John <[email protected]>; R-help <[email protected]>
Subject: Re: [R] Convert R object to a data frame


Às 21:57 de 04/06/2026, Sorkin, John escreveu:
I have an R object created lapply function within a by a by function

       results_by_date <- by(
         data,
          data[,"Date"],
          function(subdata) {
            lapply(
            alertlevels,
            check_cutpoints2,
            data=subdata,
            mycolumn=column
            )
          }
       )

which has the following structure

$ 2020-08-14:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 0
   $ 2020-08-15:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 1
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 0
   $ 2020-08-16:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 15
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 6
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 6
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 6
   $ 2020-08-17:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 58
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 20
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 7
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 2
   $ 2020-08-18:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 79
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 45
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 16
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 6
   $ 2020-08-19:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 187
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 100
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 61
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 38
   $ 2020-08-20:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 121
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 31
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 13
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 4
   $ 2020-08-21:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 17
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 8
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 5
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 3
   $ 2020-08-22:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 35
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 12
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 6
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 2
   $ 2020-08-23:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 32
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 15
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 8
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 4
   $ 2020-08-24:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 15
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 5
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 1
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 0
   $ 2020-08-25:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 43
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 26
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 13
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 5
   $ 2020-08-26:List of 4
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.1
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.2
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.3
    .. ..$ NumPeopleExposed: int 0
    ..$ :List of 2
    .. ..$ criticalvalue   : num 0.4
    .. ..$ NumPeopleExposed: int 0
   - attr(*, "dim")= int 13
   - attr(*, "dimnames")=List of 1
    ..$ data[, "Date"]: chr [1:13] "2020-08-14" "2020-08-15" "2020-08-16" 
"2020-08-17" ...
   - attr(*, "call")= language by.data.frame(data = data, INDICES = data[, 
"Date"], FUN = function(subdata) {     lapply(alertlevels, check_cutp| __truncated__ ...
   - attr(*, "class")= chr "by"
NULL

I would like to convert the object to a dataframe. Can anyone suggest how I 
might accomplish this task?

Thank you,
John

John David Sorkin M.D., Ph.D.
Professor of Medicine, University of Maryland School of Medicine;
Associate Director for Biostatistics and Informatics, Baltimore VA Medical 
Center Geriatrics Research, Education, and Clinical Center;
Former PI Biostatistics and Informatics Core, University of Maryland School of 
Medicine Claude D. Pepper Older Americans Independence Center;
Senior Statistician University of Maryland Center for Vascular Research;

Division of Gerontology, Geriatrics and Palliative Medicine,
10 North Greene Street
GRECC (BT/18/GR)
Baltimore, MD 21201-1524
Cell phone 443-418-5382



______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.r-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Hello,

The problem is that you have a lapply() nested in by(), so you will have
to rbind twice.
It seems that


results_by_date <- by(
    data,
    data[,"Date"],
    function(subdata) {
      lapply(
        alertlevels,
        check_cutpoints2,
        data=subdata,
        mycolumn=column
      ) |> do.call(rbind, args = _)
    }
) |> do.call(rbind, args = _)


can solve it.
Can you post the output of dput(results_by_date[1:2]) ?

Hope this helps,

Rui Barradas



Hello,

Here is a way to convert results_by_date into a df.



res1 <- lapply(results_by_date, \(x) {
  lapply(x, as.data.frame) |> do.call(rbind, args = _)
}) |> do.call(rbind, args = _)

# extract date and num the rownames
dt <- row.names(res1)
num <- sub("[^\\.]*(\\.(\\d+))", "\\2", dt) |> as.numeric()
dt <- sub("([^\\.]*)\\.\\d+", "\\1", dt) |> as.Date()

result <- cbind(res1, Date = dt, Record = num)
rm(res1, dt, num)

result
#>              criticalvalue NumPeopleExposed       Date Record
#> 2020-08-14.1           0.1                0 2020-08-14      1
#> 2020-08-14.2           0.2                0 2020-08-14      2
#> 2020-08-14.3           0.3                0 2020-08-14      3
#> 2020-08-14.4           0.4                0 2020-08-14      4
#> 2020-08-15.1           0.1                1 2020-08-15      1
#> 2020-08-15.2           0.2                0 2020-08-15      2
#> 2020-08-15.3           0.3                0 2020-08-15      3
#> 2020-08-15.4           0.4                0 2020-08-15      4
#> 2020-08-16.1           0.1               15 2020-08-16      1
#> 2020-08-16.2           0.2                6 2020-08-16      2
#> 2020-08-16.3           0.3                6 2020-08-16      3
#> 2020-08-16.4           0.4                6 2020-08-16      4
#> 2020-08-17.1           0.1               60 2020-08-17      1
#> 2020-08-17.2           0.2               26 2020-08-17      2
#> 2020-08-17.3           0.3                9 2020-08-17      3
#> 2020-08-17.4           0.4                3 2020-08-17      4



But I think there is something going on upstream. You have nested loops by/lapply and it is probably possible to avoid further processing. It might be useful to run a couple of iterations of the lapply loop and post the output of that in dput format (before by()).

Hope this helps,

Rui Barradas

______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to