#r #openxlsx
#r #openxlsx
Вопрос:
Следующий код здесь выделяет ячейки, когда количество больше 32, я хочу, чтобы он выделял всю строку
df = data.frame(Year = c(2018,2019,2020,2018,2019,2020,2018,2019,2020),
Country = c("Germany","Germany","Germany", "Japan", "Japan", "Japan", "Thailand", "Thailand", "Thailand"),
Count = c(17, 15, 60, 23, 25, 60, 50, 18, 31))
wb = createWorkbook()
addWorksheet(wb, "Master")
writeDataTable(wb, "Master", df, tableStyle = "TableStyleLight9")
yellow_style = createStyle(fgFill = "#FFFF00")
y = which(colnames(df) == "Count")
x = which(abs(df$Count) > 32)
addStyle(wb, sheet = "Master", style = yellow_style, rows = x 1, col = y)
saveWorkbook(wb, "Master.xlsx", overwrite = TRUE)
Ответ №1:
Чтобы выделить строки до определенного столбца, используйте 1:n
индекс:
library(openxlsx)
wb = createWorkbook()
addWorksheet(wb, "Master")
writeDataTable(wb, "Master", df, tableStyle = "TableStyleLight9")
yellow_style = createStyle(fgFill = "#FFFF00")
x = which(abs(df$Count) > 32) 1
y = 1:which(colnames(df) == "Count") # <==== here, 1 to up to column "count"
addStyle(wb, sheet = "Master", style = yellow_style,
rows = x, col = y, gridExpand = TRUE)
saveWorkbook(wb, "Master.xlsx", overwrite = TRUE)
Чтобы выделить всю строку, используйте некоторое большое число для столбцов:
wb = createWorkbook()
addWorksheet(wb, "Master")
writeDataTable(wb, "Master", df, tableStyle = "TableStyleLight9")
yellow_style = createStyle(fgFill = "#FFFF00")
x = which(abs(df$Count) > 32) 1
y = which(colnames(df) == "Count"):10 # <==== here, I am using 10 as example
addStyle(wb, sheet = "Master", style = yellow_style,
rows = x, col = y, gridExpand = TRUE)
saveWorkbook(wb, "Master.xlsx", overwrite = TRUE)
Комментарии:
1. Да, работает хорошо! Я изменил его на y = 1:which(colnames(df) == «Count»), и он выделяет всю строку. Приветствия