我这里有一份清单。
NewList <- list(a="abc",b="xyz",c="lmn")
如果我意外地运行Reduce(f = function(x,y){paste0(x,y,sep=";")},x=NewList)
,它会给出"abcxyz;lmn;"
如果我运行Reduce(f = function(x,y){paste(x,y,sep=";")},x=NewList)
,答案正如预期的那样是"abc;xyz;lmn"
。
谁能帮我解释一下为什么paste0
给出的结果与paste
不同
发布于 2019-11-28 04:35:06
根据?paste
的说法
paste0(...,折叠)等同于粘贴(...,sep = "",折叠),效率稍高一些。
通过提供新的sep
,它正在与已经存在的sep
产生冲突。取而代之的是对sep
使用paste
在这里,我们可以直接使用paste
而不需要任何Reduce
,因为list
的每个元素的length
都是1
paste(NewList, collapse=";")
#[1] "abc;xyz;lmn"
或
paste0(NewList, collapse=";")
#[1] "abc;xyz;lmn"
注意,在上面的例子中,我们没有接触到sep
https://stackoverflow.com/questions/59078011
复制相似问题