【问题标题】:Add asterisk in kable if cells satisfy condition based on another matrix如果单元格满足基于另一个矩阵的条件,则在 kable 中添加星号
【发布时间】:2020-11-07 21:06:31
【问题描述】:

我有一个矩阵m,它将被传递给kable 包。我想在m[c(1,3,5,7,9,11,13), 1:7] 中的每个单元格中添加一个星号,其中CI 中的对应元素是FALSE

我希望输出如下所示:

数据:

CI <- structure(c(TRUE, TRUE, TRUE, TRUE, NA, NA, NA, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, NA, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, NA, NA, TRUE, TRUE, TRUE, TRUE, TRUE), .Dim = c(7L, 7L), .Dimnames = list(
    i = c("Aaa", "Aa", "A", "Baa", "Ba", "B", "Caa"), j = c("Aaa", 
    "Aa", "A", "Baa", "Ba", "B", "Caa")))

m <- structure(c("Aaa", "", "Aa", "", "A", "", "Baa", "", "Ba", "", 
"B", "", "Caa", "", "37.14%", "(5.78%)", "8.76%", "(1.71%)", 
"3.48%", "(1.03%)", "1.61%", "(0.92%)", "0.00%", "(0.00%)", "0.00%", 
"(0.00%)", "0.00%", "(0.00%)", "35.71%", "(5.73%)", "47.81%", 
"(3.02%)", "22.15%", "(2.34%)", "14.52%", "(2.58%)", "7.76%", 
"(2.48%)", "9.46%", "(3.40%)", "0.00%", "(0.00%)", "22.86%", 
"(5.02%)", "21.90%", "(2.50%)", "48.10%", "(2.81%)", "30.11%", 
"(3.36%)", "15.52%", "(3.36%)", "12.16%", "(3.80%)", "2.70%", 
"(2.67%)", "2.86%", "(1.99%)", "13.87%", "(2.09%)", "17.41%", 
"(2.13%)", "26.34%", "(3.23%)", "30.17%", "(4.26%)", "21.62%", 
"(4.79%)", "10.81%", "(5.10%)", "1.43%", "(1.42%)", "5.11%", 
"(1.33%)", "6.01%", "(1.34%)", "17.20%", "(2.77%)", "25.00%", 
"(4.02%)", "18.92%", "(4.55%)", "21.62%", "(6.77%)", "0.00%", 
"(0.00%)", "2.55%", "(0.95%)", "2.22%", "(0.83%)", "8.60%", "(2.06%)", 
"14.66%", "(3.28%)", "18.92%", "(4.55%)", "35.14%", "(7.85%)", 
"0.00%", "(0.00%)", "0.00%", "(0.00%)", "0.63%", "(0.45%)", "1.61%", 
"(0.92%)", "6.90%", "(2.35%)", "18.92%", "(4.55%)", "29.73%", 
"(7.51%)", "70", NA, "274", NA, "316", NA, "186", NA, "116", 
NA, "74", NA, "37", NA), .Dim = c(14L, 9L), .Dimnames = list(
    NULL, c("Prior", "Aaa", "Aa", "A", "Baa", "Ba", "B", "Caa", 
    "Obs.")))

【问题讨论】:

    标签: r matrix r-markdown kable


    【解决方案1】:

    我们可以在基于 'CI' 中的 TRUE 值对元素进行子集化后使用 paste

    i1 <- !is.na(CI) & CI
    m[, colnames(CI)][i1] <-  paste0(m[, colnames(CI)][i1], "*")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      相关资源
      最近更新 更多