【发布时间】:2020-12-10 13:38:46
【问题描述】:
编辑:这个问题原来有一个与编程本身无关的接口解决方案。因此,问题不再与 r 语言有关。
原标题: 将代码粘贴到 R 控制台,保留换行和缩进而不格式化?
我正在寻找一种方法来轻松存储代码并随后将代码打印到 R 控制台。最好不必处理转义的特殊字符,例如\"。
expr() 函数几乎是正确的,因为它不需要任何格式。不幸的是,它不保留换行符:
# A)
expr("17" %>%
as.numeric())
因此等价于
# B)
expr("17" %>% as.numeric())
两种打印方式:
"17" %>% as.numeric()
但是,我发现确实尊重换行并保持缩进的功能需要转义字符。例如来自胶水包的glue():
glue("
\"17\" %>%
as.numeric()")
打印精美:
"17" %>%
as.numeric()
是否已经有任何功能可以解决我的问题?
我相信我的情况与 R 中的 "Error: unexpected ..." 输出几乎相同,例如,当您在通话结束时有一个额外的 ) 时。但我不知道如何找到产生这些错误消息的底层代码。
【问题讨论】:
-
究竟是为了什么目的?为什么需要将代码打印到 R 控制台?您是否了解集成探索性编程环境,例如 ESS、Nvim-R 和 RStudio?
-
目的是存储代码块,然后可以轻松地从控制台复制并粘贴到代码中。我已经使用 Rstudio 10 年了,但没有你提到的其他两个经验。
-
也许
readClipboard()的一些实现是可能的,与eval()配对? -
我仍然不清楚它的实际目的是什么。从您评论中的描述来看,现在听起来真正想要的是 RStudio sn-ps 功能。是这样吗?无论哪种方式,将其粘贴到控制台可能是错误的做法,如果您提供有关所需用途的更多详细信息,我们可能会提供更具体的建议。
-
@Smerla 哦,酷!我同意在这种情况下你的描述就足够了,我只是假设你的意思是别的。