我想根据另一列的值在新列中添加彩色点。
我有:
data <-
tibble(
one = rep("placeholder text",5),
one_text = 0:4
)
并且可以使用以下方法创建一个带有彩色点的新列:
black_dot <- "\U2B24"
data %>%
flextable %>%
compose( j = "one",
value = as_paragraph(
as_chunk(black_dot, props = fp_text(color = "red")
)
),
part = "body")
我想传入 one_text 列中的值,并根据此逻辑在最终帧中具有相应的颜色编码圆圈
colour_choice = function(x){
if (x == 0) {
"green"
} else if ( x >= 3) {
"red"
} else {
"orange"
}
}
当我尝试时:
data %>%
flextable %>%
compose( j = "one",
value = as_paragraph(
as_chunk(black_dot, props = fp_text(color = colour_choice( ~ .one_text))
)
),
part = "body")
我得到:
有没有办法让圆圈相应地着色?
包
library(officedown)
library(knitr)
library(tidyverse)
library(flextable)
library(officer)
最佳答案
您可以通过矢量化 colour_choice
函数来实现此目的:
colour_choice <- Vectorize(colour_choice)
data %>%
flextable %>%
compose( j = "one",
value = as_paragraph(
as_chunk(black_dot, props = fp_text(color = colour_choice(one_text))
)
),
part = "body")
产生
关于r - 使用 dplyr 在新列中添加彩色点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71068389/