Skip to content

Conflict between DT::datatable and haven_labelled #398

@bjcarothers

Description

@bjcarothers

There seems to be a conflict between DT::datatable and haven_labelled data types that might be caused by recent versions of htmltools.

This works fine:

library(dplyr)
library(DT)
library(labelled)
testDf <- tibble(a=c("one","two"),
                 b=c(1,2)) 
datatable(testDf)

This does not:

test2Df <- testDf %>%
  set_value_labels(b = c("First"=1, "Second"=2))
datatable(test2Df)

Yielding the following error:

Error: C stack usage 15923728 is too close to the limit

Running the following versions:

  • R version 4.3.1 (2023-06-16 ucrt)
  • Platform: x86_64-w64-mingw32/x64 (64-bit)
  • Running under: Windows 10 x64 (build 19044)
  • labelled_2.12.0 DT_0.29 dplyr_1.1.2

C stack errors are generally the result of deep recursive functions, which a 2x2 table is not. I've used DT to display dataframes with haven_labelled data types in the past, so this is a recent bug. I posted the issue at https://stackoverflow.com/questions/77026027/conflict-between-dtdatatable-and-haven-labelled and it did not replicate with htmltools_0.5.3 but does replicate with htmltools_0.5.6. Ritchie Sacramento's theory is that "it's an issue with htmltools when it tries to print the DT object - it gets stuck in a loop checking for tags and trying to add tags..."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions