paste0() 函数中的 sep 参数行为不符合预期

sep argument in paste0() function behaves not as expected

我想粘贴字符并用特定符号分隔它们,例如 ,。使用 paste() 函数按预期工作:

paste("1st", "2nd", "3rd", sep = ", ")
[1] "1st, 2nd, 3rd"

但是使用paste0()函数会导致最后一个字符只有分隔符:

paste0("1st", "2nd", "3rd", sep = ", ")
[1] "1st2nd3rd, "

我认为这两个函数之间的主要区别在于 paste() 默认情况下生成 space 并且因为我在两个示例中都将 sep 指定为“, " 我期望相同的结果。但事实并非如此。这是预期的行为吗?

paste0 函数没有 sep= 参数。它是专门为不使用分隔符而创建的。所以这些都是一样的

paste0("1st", "2nd", "3rd", sep=", ")
paste0("1st", "2nd", "3rd",  ", ")
paste0(a="1st", b="2nd", c="3rd",  d=", ")

查看 ?paste0 帮助页面了解更多信息。如果您想要分隔符,请不要使用 paste0。这是预期的行为。