У меня есть таблица данных, которую я хочу отобразить в приложении Shiny с различным форматированием чисел по строкам.Я нашел предыдущее решение для пользователя NicE, которое работает, когда все столбцы и строки числовые, можно увидеть здесь: R Shiny DataTables: форматировать числа не по столбцам, а по строкам
К сожалению, мой первый столбецне является числовым, и с моей таблицей вышеупомянутое решение дает NaN% значений в первом столбце и не форматирует последующие столбцы.Я уверен, что есть способ решить эту проблему, но я не знаю JavaScript, поэтому я не знаю, как правильно изменить функцию rowCallback.
Вот моя текущая попытка:
library(DT)
dat <- as.data.frame(matrix(c("# respondents",20,35,18,"involvement rate",.85,.8285,.8889,"target",.80,.85,.9),nrow=3,byrow=T))
datatable(dat,options=list(
rowCallback=JS("function( row, dat, index ) {
$('td:eq(0)', row).html(dat[0] % 1 != 0 | dat[0]==0 ? (dat[0]*100).toFixed(1) +'%':dat[0]);
$('td:eq(1)', row).html(dat[1] % 1 != 0 | dat[1]==0 ? (dat[1]*100).toFixed(1) +'%':dat[1]);
}
")))
Любая помощь приветствуется!
Редактировать: Я рассчитывал, поскольку единственные ожидаемые строки символов будут в первом столбце, вместо этого я мог бы изменить этот столбец на имена строк:
dat2 <- subset(dat, select = -1)
rname <- as.vector(dat$V1)
row.names(dat2) <- rname
и затем запустите datatable (...) на dat2 вместо dat.Это приводит к тому же NaN% для имен строк, но теперь первый фактический столбец правильно отформатирован, но не остальные столбцы.