在向量上使用 R 的胶水进行字符串插值,无需多次调用
String interpolation with R's glue on a vector, without calling it multiple times
我希望在向量上使用 R 的 glue::glue()
进行字符串插值,而不需要多次调用它。
示例:
df <- data.frame(x = 1:10)
glue::glue("No. of Rows: {dim(df)[1]}, No. of Columns: {dim(df)[2]}")
会按要求给予:
No. of Rows: 10, No. of Columns: 1
但是我调用了两次 dim(df)
,它是一个长度为 2 的向量。
我想知道 glue
是否可以使用 % 运算符处理类似于 Python 中的字符串插值:
import pandas as pd
df = pd.DataFrame({"x": range(10)})
print('No. of Rows: %d, No. of Columns: %d' % df.shape)
无需调用 df.shape
两次即可提供相同的所需输出。
我不确定您是否可以在本地执行此操作,但您可以做的一件事是将其包装在一个函数中:
f <- function(x) glue::glue("No. of Rows: {x[1]}, No. of Columns: {x[2]}")
f(dim(df))
您可以使用它,类似于 Python 的 f 字符串插值:
shape <- dim(df)
glue::glue("No. of Rows: {shape[1]}, No. of Columns: {shape[2]}")
是的,你可以这样做:
glue("nr = {x[1]}, nc = {x[2]}", x = dim(mtcars))
# nr = 32, nc = 11
根据 ?glue
文档,...
的描述是:
Unnamed arguments are taken to be expressions string(s) to format. Multiple inputs are concatenated together before formatting. Named arguments are taken to be temporary variables available for substitution.
(强调我的,突出与该问题相关的部分。)
我希望在向量上使用 R 的 glue::glue()
进行字符串插值,而不需要多次调用它。
示例:
df <- data.frame(x = 1:10)
glue::glue("No. of Rows: {dim(df)[1]}, No. of Columns: {dim(df)[2]}")
会按要求给予:
No. of Rows: 10, No. of Columns: 1
但是我调用了两次 dim(df)
,它是一个长度为 2 的向量。
我想知道 glue
是否可以使用 % 运算符处理类似于 Python 中的字符串插值:
import pandas as pd
df = pd.DataFrame({"x": range(10)})
print('No. of Rows: %d, No. of Columns: %d' % df.shape)
无需调用 df.shape
两次即可提供相同的所需输出。
我不确定您是否可以在本地执行此操作,但您可以做的一件事是将其包装在一个函数中:
f <- function(x) glue::glue("No. of Rows: {x[1]}, No. of Columns: {x[2]}")
f(dim(df))
您可以使用它,类似于 Python 的 f 字符串插值:
shape <- dim(df)
glue::glue("No. of Rows: {shape[1]}, No. of Columns: {shape[2]}")
是的,你可以这样做:
glue("nr = {x[1]}, nc = {x[2]}", x = dim(mtcars))
# nr = 32, nc = 11
根据 ?glue
文档,...
的描述是:
Unnamed arguments are taken to be expressions string(s) to format. Multiple inputs are concatenated together before formatting. Named arguments are taken to be temporary variables available for substitution.
(强调我的,突出与该问题相关的部分。)