gpt4 book ai didi

r - 使用 DT 包中的数据表函数对 NA 进行排序

转载 作者:行者123 更新时间:2023-12-05 03:45:16 25 4
gpt4 key购买 nike

我正在尝试使用 DT 包中的 datatable 函数创建一个 html 表,这样当我在 R markdown 中对数据进行排序时,缺失的行会在最高数字之后排序。

例如,在下表中,当我在 markdown 文件中按“年龄”排序时,我希望带有 NA 的行列在最后,以便顺序为 14,15,21,NA。

dat <- data.frame("Age" = c(21,15,NA,14), 
"Name" = c("John","Dora", "Max", "Sam"),
"Gender" = c("M","F","M",NA))


DT::datatable(dat, filter = c("top"))

我试过使用“na.last = TRUE”,这在最初打印数据表时有效,但是当单击要排序的列时,NA 仍然在 14 之前。

如有任何帮助,我们将不胜感激!

最佳答案

使用 render columnwise 选项,您可以在排序期间设置缺失值的值:

library(DT)

dat <- data.frame("Age" = c(21,15,NA,14),
"Name" = c("John","Dora", "Max", "Sam"),
"Gender" = c("M","F","M",NA))

render <- JS(
"function(data, type, row) {",
" if(type === 'sort' && data === null) {",
" return 999999;",
" }",
" return data;",
"}"
)

datatable(
dat,
filter = "top",
options = list(
columnDefs = list(
list(targets = 1, render = render)
)
)
)

关于r - 使用 DT 包中的数据表函数对 NA 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65895266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com