如何创建正确的路径以在 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:如果这不是您要查找的内容,您能否澄清一下?谢谢!
编辑
如果你想使用 tibble
和 gt
,下面的代码应该可以在你的电脑上运行,就像在我的电脑上一样。
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_transform
将locations
column/row作为一个整体传递给fn
。换句话说,flag.path
只是一个向量。
我想在 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:如果这不是您要查找的内容,您能否澄清一下?谢谢!
编辑
如果你想使用 tibble
和 gt
,下面的代码应该可以在你的电脑上运行,就像在我的电脑上一样。
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_transform
将locations
column/row作为一个整体传递给fn
。换句话说,flag.path
只是一个向量。