我尝试将gt包中的data_color()函数应用于数据框中的几列,但每列都有自己的调色板域,目前为止,我得到的结果是:
df <- data.frame(Var1 = rnorm(30),
Var2 = rnorm(30),
Var3 = rnorm(30),
Var4 = rnorm(30),
Var5 = rnorm(30),
Var6 = rnorm(30))
mypals <- list()
for (i in 2:6){
mypals[[i]] <- scales::col_bin(colpal,
domain = c(min(df[,i]), max(df[,i])))
}
df %>%
gt() %>%
data_color(columns = 2, colors = mypals[[2]]) %>%
data_color(columns = 3, colors = mypals[[3]]) %>%
data_color(columns = 4, colors = mypals[[4]]) %>%
data_color(columns = 5, colors = mypals[[5]]) %>%
data_color(columns = 6, colors = mypals[[6]])
有没有一种方法可以做一个“递归”的管道,类似的东西也许?
df %>%
gt() %>% seq(2:6) %>% (function(x){
data_color(columns = x, colors = mypals[[x]])
}
)
提前感谢您的所有建议。我是gt软件包的新手,所以如果有更简单的方法,请原谅我。
2条答案
按热度按时间rwqw0loc1#
我不能通过y测试这个答案,因为我不能安装这个
gt
包,但是我相信你正在从purrr
包中寻找accumulate
或reduce
函数。从 man 页:
w8rqjzmb2#
一种方法是生成语句并使用
eval(parse(text=<stment>))
,如下所示: