R中的日历热图
希望在R中创建一个gt/reactable表,用作日历热图。就像在这个网站上找到的一样。当我尝试复制该代码时,我得到一个错误:“仅在具有所有数字相似变量的数据帧上定义。”我将年份设置为因子变量,不想给该列着色。以下是我尝试的代码+dput输出:R中的日历热图,r,dplyr,data-visualization,gt,reactable,R,Dplyr,Data Visualization,Gt,Reactable,希望在R中创建一个gt/reactable表,用作日历热图。就像在这个网站上找到的一样。当我尝试复制该代码时,我得到一个错误:“仅在具有所有数字相似变量的数据帧上定义。”我将年份设置为因子变量,不想给该列着色。以下是我尝试的代码+dput输出: BuYlRd <- function(x) rgb(colorRamp(c("#7fb7d7", "#ffffbf", "#fc8d59")) (x), maxColorValue =
BuYlRd <- function(x) rgb(colorRamp(c("#7fb7d7", "#ffffbf", "#fc8d59"))
(x), maxColorValue = 255)
reactable(
bls,
defaultColDef = colDef(
style = function(value) {
if (!is.numeric(value)) return()
normalized <- (value - min(bls)) / (max(bls) - min(bls))
color <- BuYlRd(normalized)
list(background = color)
},
format = colFormat(digits = 2),
minWidth = 50
),
columns = list(
.rownames = colDef(name = "Year", sortable = TRUE, align =
"left")
),
bordered = TRUE
)
解决方案可能是将年份列放入数据集的行名称中,然后删除年份列:
bls=as.data.frame(bls)
rownames(bls)=bls$year
bls=bls[,-1]
reactable(
bls,
defaultColDef = colDef(
style = function(value) {
if (!is.numeric(value)) return()
normalized <- (value - min(bls)) / (max(bls) - min(bls))
color <- BuYlRd(normalized)
list(background = color)
},
format = colFormat(digits = 2),
minWidth = 50
),
columns = list(
.rownames = colDef(name = "Year", sortable = TRUE, align =
"left")
),
bordered = TRUE
)
bls=as.data.frame(bls)
行名称(bls)=bls$年
bls=bls[,-1]
反应的(
bls,
defaultColDef=colDef(
样式=功能(值){
如果(!is.numeric(value))返回()
正常化谢谢。如果我的数据中有NA怎么办?例如,如果我想添加2021年6月至12月的数据,那么还没有数据。如果我将它们替换为0,那么整个色阶都会消失
bls=as.data.frame(bls)
rownames(bls)=bls$year
bls=bls[,-1]
reactable(
bls,
defaultColDef = colDef(
style = function(value) {
if (!is.numeric(value)) return()
normalized <- (value - min(bls)) / (max(bls) - min(bls))
color <- BuYlRd(normalized)
list(background = color)
},
format = colFormat(digits = 2),
minWidth = 50
),
columns = list(
.rownames = colDef(name = "Year", sortable = TRUE, align =
"left")
),
bordered = TRUE
)