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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions