2015-10-19 3 views
1

Есть ли способ отображения возвратов каретки с использованием пакета DT в R-блестящем приложении?Возврат каретки в пакете DT R Shiny

Я попытался код здесь:

library(DT) 

# create data frame with an example column 
test_df <- data.frame(SAME = "Same Line", NEW = "New\nLine") 

# print data frame 
datatable(test_df) 

\n обозначения не работает, и, кажется, функция datatable заменяет \n пробелом.

Я хочу, чтобы вторая ячейка «Новая линия» имела слова «Новая» и «Линия» на отдельных строках.

ответ

2

Это решает проблему:

library(DT) 

# create data frame with an example column 
test_df <- data.frame(SAME = "Same Line", NEW = "New\nLine") 

# replace \n with <br/> 
test_df$NEW <- gsub(pattern = "\n", replacement = "<br/>", x = test_df$NEW) 

# print data frame 
# with escape set to FALSE 
datatable(test_df, escape = FALSE) 
+0

это не сработало для меня. еще нет новой строки. – Paul

+0

Можете ли вы создать воспроизводимую версию, где это не работает? – easports611

+0

Вы правы, извините за загадочный комментарий ... Я могу и вернусь с примером – Paul

0

Это не решение, а скорее продолжение до @ easports611 комментария. ниже это приложение, где ответ не работает:

server <- function(input, output, session) { 
    library(data.table) 
    data("iris") 
    output$buySegments <- DT::renderDataTable({ 
     colnames(iris)=c("a <br>b","c<br>d","e<br>f","g<br>h","i") 
     sketch<-htmltools::withTags(table(
     tableHeader(iris 
    ))) 
     #rangeRatio 
     thing = DT::datatable(
     iris 
     ,rownames = FALSE 
     ,container = sketch 
    ) 
     return(thing) 
    } 
    ) 
} 


ui=shinyUI(
    fluidPage(theme = "bootstrap.css",title = "Buyer Console", 
      mainPanel( 
       DT::dataTableOutput('buySegments') 
      ) 
) 
) 

shinyApp(ui = ui, server = server) 

Проблема явно в том, что я с указанием имен столбцов с помощью контейнера. Оказывается, решение заключается в установке опции escape=F в функции tableHeader.

Смежные вопросы