在 RStudio 片段中使用 $ 符号而不将 $ 符号评估为变量创建者
Using a $ symbol within RStudio snippets without the $ sign being evaluated as a variable creator
在以下情况下,当我在 RStudio 中创建 R 代码段时,代码段变量中的 $ 符号会在我希望文字 $ 符号出现以供在我的代码段中使用时产生问题(例如,mtcars$cyl):
snippet cor_binary
ltm::biserial.cor(${1:df}$ ${2:continuous_field}, ${1:df}$ ${3:binary_field}, use = c("complete.obs"), level = 2)
上面的代码片段在 df
和 field
之间产生了不需要的白色 space:
# output
ltm::biserial.cor(df$ continuous_field, df$ binary_field, use = c("complete.obs"), level = 2)
我的代码片段中的 space 不会在输出中产生不同的问题:
snippet cor_binary
ltm::biserial.cor(${1:df}$${2:continuous_field}, ${1:df}$${3:binary_field}, use = c("complete.obs"), level = 2)
# output
ltm::biserial.cor(df\{2:continuous_field}, df\{3:binary_field}, use = c("complete.obs"), level = 2)
如何在没有代码段的情况下在 mtcars$cyl 的上下文中包含 $ 符号
使用反引号:
data.table::data.table(`a$b` = 1)
a$b
1: 1
推荐的方法是使用 [[
而不是 $
:
snippet test
${1:df}[["${2:abc}"]]
解析为:
df[["abc"]]
如果必须使用 $
这里有一个 hacky 的方法来让它工作,它利用了片段可以 运行 使用 `r ... `
编码的事实,它可以用来打印一个转义的 $ 和第二个变量之间的零宽度元素。不过,这可能不应该被依赖。
snippet test2
${1:df}$`r ""`${2:abc}
解析为:
df$abc
在以下情况下,当我在 RStudio 中创建 R 代码段时,代码段变量中的 $ 符号会在我希望文字 $ 符号出现以供在我的代码段中使用时产生问题(例如,mtcars$cyl):
snippet cor_binary
ltm::biserial.cor(${1:df}$ ${2:continuous_field}, ${1:df}$ ${3:binary_field}, use = c("complete.obs"), level = 2)
上面的代码片段在 df
和 field
之间产生了不需要的白色 space:
# output
ltm::biserial.cor(df$ continuous_field, df$ binary_field, use = c("complete.obs"), level = 2)
我的代码片段中的 space 不会在输出中产生不同的问题:
snippet cor_binary
ltm::biserial.cor(${1:df}$${2:continuous_field}, ${1:df}$${3:binary_field}, use = c("complete.obs"), level = 2)
# output
ltm::biserial.cor(df\{2:continuous_field}, df\{3:binary_field}, use = c("complete.obs"), level = 2)
如何在没有代码段的情况下在 mtcars$cyl 的上下文中包含 $ 符号
使用反引号:
data.table::data.table(`a$b` = 1)
a$b
1: 1
推荐的方法是使用 [[
而不是 $
:
snippet test
${1:df}[["${2:abc}"]]
解析为:
df[["abc"]]
如果必须使用 $
这里有一个 hacky 的方法来让它工作,它利用了片段可以 运行 使用 `r ... `
编码的事实,它可以用来打印一个转义的 $ 和第二个变量之间的零宽度元素。不过,这可能不应该被依赖。
snippet test2
${1:df}$`r ""`${2:abc}
解析为:
df$abc