Ошибка в sass_options (): не удалось найти функцию "strrep" - PullRequest
1 голос
/ 18 апреля 2020

У меня есть следующий Dataframe в R:

structure(list(seq = c("-", "FRD", "FHL", "ABC", "DEF", "XYZ", 
"ZZZ", "CXY"), count1 = c(969, 324, 11, 161, 185, 79, 231, 9
), seq_perc = c("49.21%", "16.46%", "0.56%", "8.18%", "9.4%", 
"4.01%", "11.73%", "0.46%"), marking = c("S2", "", "S1", "NA", 
"Hold", "-", "-", "-"), marking_counter = c("1708", "215", 
"35", "9", "2", "-", "-", "-"), Percentage2 = c("86.74%", "10.92%", 
"1.78%", "0.46%", "0.1%", "-", "-", "-"), batch_no = c("6", "7", 
"-", "-", "-", "-", "-", "-"), batch_no_counter = c("1717", "200", 
"52", "-", "-", "-", "-", "-"), Percentage3 = c("87.2%", "10.16%", 
"2.64%", "-", "-", "-", "-", "-")), .Names = c("seq", "count1", 
"seq_perc", "marking", "marking_counter", "Percentage2", "batch_no", 
"batch_no_counter", "Percentage3"), row.names = c("1", "9", "14", 
"20", "22", "37", "46", "338"), class = "data.frame")

Я использую нижеприведенный код для преобразования кадра данных в HTML табличный формат, который можно использовать для прикрепления в теле письма с использованием mailR библиотека.

Я получаю сообщение об ошибке типа Error in sass_options() : could not find function "strrep". Также иногда получаю ошибку Error: could not find function "gtsave"

library(gt)
library(tibble)
library(gt)
library(stringr)
library(dplyr)

test1 <- expression(marking == "Hold" & as.numeric(str_remove(Percentage2, "%")) > 25.00)
test2 <- expression(batch_no == "8" & as.numeric(str_remove(Percentage3, "%")) > 25.00)
test3 <- expression(marking == "S3" & batch_no == "9")


newtab <-
      dataframe  %>%
      mutate(marking = ifelse(eval(test3), paste0(marking, " (In progress)"), marking))  %>%
      gt() %>%
      tab_style(style = list(cell_fill(color = "lightgreen"),
                             cell_text(weight = "bold")),
                locations = cells_column_labels(columns = 1:9)) %>%
     tab_style(style = list(cell_fill(color = "yellow"),
                             cell_text(weight = "bold")),
                locations = cells_body(columns = 1:9, rows = nrow(dataframe))) %>%
                  tab_style(style = list(cell_fill(color = "red"),
                                         cell_text(color = "white", weight = "bold")),
                            locations = cells_body(columns = c("marking", "Percentage2"),
                                                   rows = eval(test1))) %>%
                  tab_style(style = list(cell_fill(color = "red"),
                                         cell_text(color = "white", weight = "bold")),
                            locations = cells_body(columns = c("batch_no", "Percentage3"),
                                                   rows = eval(test2))) %>%
                  tab_style(style = list(cell_text(size = px(2))),
                            locations = cells_body(columns = c("marking"),
    rows = str_detect(string = marking, pattern = "progress")))
    gtsave(newtab, file = "gttable.html")

1 Ответ

2 голосов
/ 18 апреля 2020

Что касается первой ошибки, функция strrep() является относительно новым дополнением к R (поэтому она недоступна в более старых версиях), но ее функциональность проста:

strrep("ab", 3)
[1] "ababab"

Вы можете просто сделать собственный

strrep <- function(x, times) paste(rep(x, times), collapse = "")
strrep("ab", 3)
[1] "ababab"
...