html - 当数据表没有列时,DT::renderDataTable 中的 formatCurrency
问题描述
我在闪亮的应用程序中使用 renderDataTable 来显示 data.table vals$content4table 的内容,它是一个 reactiveValues。
可能会发生 vals$content4table 等于没有列的数据表。在这种情况下,我在使用 formatCurrency 时出错,因为它搜索不存在的列。有没有办法检查数据表是否有带有 ifelse 的列以避免错误?
这是我的服务器的一段代码。
#initialising vals$content4table when launching the app
vals <- reactiveValues(content4table = if(someBoolean) {data.table(NULL)} else {data.table("Column1" = "whatever","Currency" = 1000}
)
output$TableInUI <- DT::renderDataTable(datatable(vals$content4table) %>% ifelse(nrow(vals$content4table)>0,formatCurrency(2, currency = "", interval = 3, mark = ",", digits = 0),fnothing()))
#where fnothing is defined as
fnothing<-function(df) return(df)
上面的代码不起作用并给出了这个错误:警告:ifelse中的错误:未使用的参数(fnothing())
解决方案
你可以使用req
:
output$TableInUI <- DT::renderDataTable({
req(isTRUE(ncol(vals$content4table)>0))
vals$content4table
})
推荐阅读
- yocto - BitBake 如何使用 B 和 SRC_URI 等变量?
- arrays - 如何将 API 响应数组字符串插入数据库
- django - Django Forms DateInput 小部件未填充
- google-cloud-platform - Stackdriver Monitoring 警报:我可以使用函数而不是常量作为条件阈值吗?
- javascript - 在猜数字游戏中进行猜测时如何编码您所做的猜测次数?
- php - 登录页面的准备语句问题
- java - 麻烦地定义一个 'bean' ,“考虑在你的配置中定义一个名为 'entityManagerFactory' 的 bean”
- javascript - 如何使用 vanilla javascript 使表单更新主表单上的文本?
- java - 网格停止在 10 x 50 而不是 50 x 50
- mysql - 当我选择 * 时不显示具有 Null 值的表