如何创建正确的路径以在 gt table 中创建图像

How can I create the correct path to create images in a gt table

我想在 gt R 包

创建的 table 中包含国旗图像
library(tibble)
library(gt)

df <- tibble(country = c("Italy","Wales"), 
             flag = c("images/flags/Italy.png","images/flags/Wales.png")
             )

# example with hardcoded country
df %>% 
  gt() %>%
  text_transform(
    locations = cells_body(vars(flag)),
    fn = function(x) {
      country = "Wales"
      local_image(
        filename = paste0("images/flags/",country,".png")
    )
    }
  )

将国家/地区硬编码到此代码中会产生输出 - 但显然总是重复相同的标志,而不管国家/地区列的值如何

所以我正在寻找将 "Wales" 替换为对同一行的 vars(country) 的一些引用的正确方法

TIA

抱歉,我没听懂你的问题,因为你的数据框中似乎已经有了路径?但是,下面的

BASE.PATH <- "images/flags/"
IMG.TYPE <- ".png"


df <- data.frame(
  country = c("Italy","Wales"))


create.path <- function(row) {
  path <- paste(BASE.PATH, row["country"], IMG.TYPE, sep = "")
  return(path)
}

df$image.path <- apply(df, 1, create.path)


load.country.image <- function(row) {
  my.image <- my.load.logic(row["image.path"])
  return(my.image)
}

df$image <- apply(df, 1, load.country.image)

这会为您动态创建路径,并加载图像。您只需根据需要更改 load.country.image 即可。我的猜测是

load.country.image <- function(row) {
  country.image <- local_image(filename = row["image.path"])
  return(country.image)
}

希望对您有所帮助!

PS:如果这不是您要查找的内容,您能否澄清一下?谢谢!

编辑 如果你想使用 tibblegt,下面的代码应该可以在你的电脑上运行,就像在我的电脑上一样。

library(tibble)
library(gt)

df <- tibble(country = c("Italy","Wales"), 
             flag.path = c("images/flags/Italy.png","images/flags/Wales.png"))


df %>% 
  gt() %>%
  text_transform(
    locations = cells_body(vars(flag.path)),
    fn = function(flag.path) {
      #  The key is here.
      lapply(flag.path, local_image)
    }
  )

问题的关键是理解text_transformlocationscolumn/row作为一个整体传递给fn。换句话说,flag.path 只是一个向量。