我在这里有一个清单。
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
不同吗?
答案 0 :(得分:1)
根据?paste
paste0(...,折叠)等效于paste(...,sep =“”,折叠),效率更高。
通过提供新的sep
,它与现有sep
产生了冲突。而是将paste
与sep
在这里,我们可以直接使用paste
而不使用任何Reduce
,因为length
的每个元素的list
为1
paste(NewList, collapse=";")
#[1] "abc;xyz;lmn"
或
paste0(NewList, collapse=";")
#[1] "abc;xyz;lmn"
请注意,在上述情况下,我们并未触摸sep