gpt4 book ai didi

r - 使用样式器设置 R 代码样式时,使用 = 而不是 <- 进行赋值

转载 作者:行者123 更新时间:2023-12-04 10:41:14 25 4
gpt4 key购买 nike

我喜欢这个包,但我想知道如何改变 tidyverse 风格的一个规则:我想保留“=”而不是“<-”进行分配。

我读过那条笔记:http://styler.r-lib.org/articles/customizing_styler.html#implementation-details

但我仍然不明白如何简单地改变这条规则。
我试过非常天真的:

library(styler)

force_assignment_op <- function (pd)
{
to_replace <- pd$token == "LEFT_ASSIGN"
pd$token[to_replace] <- "EQ_ASSIGN"
pd$text[to_replace] <- "="
pd
}


tidyverse_style()$token$force_assignment_op = force_assignment_op

但得到以下错误:
Error in tidyverse_style()$token$force_assignment_op = 
force_assignment_op :
invalid (NULL) left side of assignment

我想以一种可以在之后简单地运行样式器插件的方式对其进行修改。

最佳答案

问题是tidyverse_style()$token是一个列表,而不是一个环境,所以你不能修改它。 (好吧,您可以修改它,但您修改的是副本,而不是原件。)

您需要编写自己的函数来替换 tidyverse_style函数,并使用它代替。例如,假设您保留 force_assignment_op功能:

LaSy_style <- function(...) {
ts <- tidyverse_style(...)
ts$token$force_assignment_op <- force_assignment_op
ts
}

然后
style_text(c("ab <- 3", "a  <-3"), strict = FALSE, style = LaSy_style)

(来自 ?tidyverse_style 的示例之一)将打印
ab = 3
a = 3

(这个太丑了,原来的 tidyverse_style更好,但我不会阻止你。)

关于r - 使用样式器设置 R 代码样式时,使用 = 而不是 <- 进行赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50660401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com