<br />
ddply(mydata, .(time,id), summarise, product = paste(product, collapse="&"))<br />
</p>
paste函数有两个参数用来设置分隔符。 一个是 sep= , 另一个是 collapse = 。
关于这两个参数的区别,用下面这个例子来说明一下。
<br />
a <- c("1"="apple","2"="htc","3"="nokia")<br />
b <- c("1"="huawei","2"="xiaomi","3"="meizu")<br />
</p>
[data]
> a
1 2 3
"apple" "htc" "nokia"
> b
1 2 3
"huawei" "xiaomi" "meizu"
[/data]
sep = "-" 是把a,b这两个长度为3的vector,1号与1号用"-"连接, 2号与2号用"-"连接, 3号与3号用"-"连接,这样返回结果依然是个vector
<br />
> paste(a,b,sep = " - ")<br />
[1] "apple - huawei" "htc - xiaomi" "nokia - meizu"<br />
</p>
collapse = "-" ,会先进行上面所说的先变成一个长度为3的向量,但增加一步,把这3个元素再连接起来。
<br />
> paste(a,b,collapse = " - ")<br />
[1] "apple huawei - htc xiaomi - nokia meizu"<br />
</p>
两个一起用的效果。
<br />
> paste(a,b,sep = " , ", collapse = " - ")<br />
[1] "apple , huawei - htc , xiaomi - nokia , meizu"<br />
</p>