提问人:Benjamin Telkamp 提问时间:9/30/2023 更新时间:9/30/2023 访问量:40
使用 KableExtra 为列标题创建函数
Creating function for Column Headers using KableExtra
问:
我正在尝试创建一个向量,我可以将其从 KableExtra 传递给 add_header_above() 函数,用于列上方带有标题的频率表。
最终,我的向量应该看起来像这样:
c(" ", "I1" = 2, "SI2" = 2, "SI1" = 2, "VS2" = 2, "VS1" = 2, "VVS2" = 2, "VVS1" = 2, "IF" = 2, "Total" = 2)
我做错了什么?我希望每个标题都扩展到两列(第一个空标题除外),但是当我通过时,每次只需要一列
my.header.above(indep.var = diamonds$cut, dep.var = diamonds$clarity)
相反,“= 2”被添加到标签旁边的列标题中;'I1 =' 2 ”。add_header_above()
clarity
my.header.above <- function(indep.var, dep.var) {
myTable = addmargins(table(indep.var,
dep.var))
colnames(myTable)[dim(myTable)[2]] <- "Total"
Header.above <- character(dim(myTable)[2])
for (j in 1:dim(myTable)[2]) {
Header.above[j+1] <- paste0('"',colnames(myTable)[j], '"',' = ', 2)
}
return(Header.above)
}
my.header.above(indep.var = diamonds$cut,
dep.var = diamonds$clarity)
答:
1赞
TarJae
9/30/2023
#1
一种可能的解决方案是将标题作为连接列表的命名元素传递,此处的名称是标题,元素是列范围。
我们可以直接分配名称,例如: ,或者我们可以使用: :names(Header.above) <- colnames(myTable)
setNames
Header.above <- setNames(numeric(dim(myTable)[2]) + 2, colnames(myTable))
library(ggplot2) # diamonds dataset
my.header.above <- function(indep.var, dep.var) {
myTable = addmargins(table(indep.var, dep.var))
colnames(myTable)[dim(myTable)[2]] <- "Total"
Header.above <- numeric(dim(myTable)[2]) + 2
names(Header.above) <- colnames(myTable)
# Header.above <- setNames(numeric(dim(myTable)[2]) + 2, colnames(myTable))
Header.above = c(" " = 1, Header.above)
return(Header.above)
}
my.header.above(indep.var = diamonds$cut, dep.var = diamonds$clarity)
I1 SI2 SI1 VS2 VS1 VVS2 VVS1 IF Total
1 2 2 2 2 2 2 2 2 2
评论
0赞
Benjamin Telkamp
10/1/2023
高超!这是否意味着 add_header_above() 接受不同的格式,或者您是否创建了我需要的完全相同的向量(我使用了您的第一个选项)?
评论