À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.