kable格式输入 table R
Format input in kable table R
这是我的可重现代码:
library(splines)
var = c(1,2,3,4,5,6,7,8,9,10)
degree.freedom <- c(4,5,6)
list1 <- list()
list2 <- list()
for (i in 1:length(degree.freedom)){
attr <- attr(bs(var, df=degree.freedom[i]) ,"knots")
list1[[i]] <- names(attr)
list2[[i]] <- unname(attr)
}
knitr::kable(cbind(list1,list2), col.names=c("list1","list2"))
WHere 我得到以下 table:
但我想获得一个更漂亮的 table 作为:
我可以对 list1
和 list2
做些什么来获得想要的 table?
注意:
我制作了所需的 table 使用:
list1 <- c("[50%]","[33.33%, 66.67%]","[25%, 50%, 75%]")
list2 <- c("[5.0]","[4.0, 7.0]","[3.25, 5.50, 7.75]")
如果你有一个列表,比如list1
:
[[1]]
[1] "50%"
[[2]]
[1] "33.33333333333332859638%" "66.66666666666665719276%"
[[3]]
[1] "25%" "50%" "75%"
您可以转换为逗号分隔值,用括号括起来:
paste0('[', lapply(list1, paste, collapse = ', '), ']')
[1] "[50%]" "[33.33333333333332859638%, 66.66666666666665719276%]"
[3] "[25%, 50%, 75%]"
在这种情况下,lapply
将每个元素一起使用 paste
,而 collapse
将在值之间插入逗号。
由于您使用的是 splines
中的 bs
,它会生成字符值百分比。位数取决于您的设置。对我来说:
getOption("digits")
[1] 22
(注意最后的随机数字是噪声...)
您可以通过设置指定打印的位数(不是小数位):
options(digits = 4)
哪个会给你:
|list1 |list2 |
|:----------------|:-----------------|
|[50%] |[5.5] |
|[33.33%, 66.67%] |[4, 7] |
|[25%, 50%, 75%] |[3.25, 5.5, 7.75] |
另请注意:kable
允许设置 digits
;但是,这适用于数值。字符值不会受到影响。
这是我的可重现代码:
library(splines)
var = c(1,2,3,4,5,6,7,8,9,10)
degree.freedom <- c(4,5,6)
list1 <- list()
list2 <- list()
for (i in 1:length(degree.freedom)){
attr <- attr(bs(var, df=degree.freedom[i]) ,"knots")
list1[[i]] <- names(attr)
list2[[i]] <- unname(attr)
}
knitr::kable(cbind(list1,list2), col.names=c("list1","list2"))
WHere 我得到以下 table:
但我想获得一个更漂亮的 table 作为:
我可以对 list1
和 list2
做些什么来获得想要的 table?
注意: 我制作了所需的 table 使用:
list1 <- c("[50%]","[33.33%, 66.67%]","[25%, 50%, 75%]")
list2 <- c("[5.0]","[4.0, 7.0]","[3.25, 5.50, 7.75]")
如果你有一个列表,比如list1
:
[[1]]
[1] "50%"
[[2]]
[1] "33.33333333333332859638%" "66.66666666666665719276%"
[[3]]
[1] "25%" "50%" "75%"
您可以转换为逗号分隔值,用括号括起来:
paste0('[', lapply(list1, paste, collapse = ', '), ']')
[1] "[50%]" "[33.33333333333332859638%, 66.66666666666665719276%]"
[3] "[25%, 50%, 75%]"
在这种情况下,lapply
将每个元素一起使用 paste
,而 collapse
将在值之间插入逗号。
由于您使用的是 splines
中的 bs
,它会生成字符值百分比。位数取决于您的设置。对我来说:
getOption("digits")
[1] 22
(注意最后的随机数字是噪声...)
您可以通过设置指定打印的位数(不是小数位):
options(digits = 4)
哪个会给你:
|list1 |list2 |
|:----------------|:-----------------|
|[50%] |[5.5] |
|[33.33%, 66.67%] |[4, 7] |
|[25%, 50%, 75%] |[3.25, 5.5, 7.75] |
另请注意:kable
允许设置 digits
;但是,这适用于数值。字符值不会受到影响。