关于R包glue保留缩进的行为差异及原因咨询
glue包缩进问题的原因解释
这是glue包的两种字符串处理模式导致的差异:
普通模式(默认):当字符串不是以换行开头时,glue会自动修剪换行符后面的所有前导空白字符。所以
glue("foo\n bar")里,\n后的两个空格被直接去掉,输出就变成了无缩进的bar。Here Document模式:当字符串以换行开头时(比如你写的多行字符串
glue(' foo bar')),glue会切换到这个模式。它会先统计所有非空行的最小前导空白数,然后把每一行的前导空白减去这个最小值,以此保留相对缩进。你的例子里foo行没有前导空白,bar行有2个,所以减去0后,这两个空格就被保留下来了。
另外给你个更简洁的解决方法:直接关闭glue的自动修剪功能,设置trim = FALSE参数就行:
glue("foo\n bar", trim = FALSE)
这样就能得到你期望的带缩进的输出。
内容的提问来源于stack exchange,提问作者January
相关产品推荐
相关产品推荐

