2015-10-20 33 views
0

我有一个数据帧,如如何聚合R数据帧的字符值

df1 <- data.frame(
     A = c("USA","USA","UK","UK","France"), 
     B = c("Boston","New York","Cambridge","Oxford","Paris") 
) 

而且我想用一个新的数据帧结束:

df2 <- data.frame(
     A = c("USA","UK","France"), 
     B = c("Boston; New York","Cambridge; Oxford","Paris") 
) 

如何汇总由A使用paste()作为“总结”功能,或相当于此?预先感谢您提供的任何帮助。

+1

谢谢@DavidArenburg。尽管我尽了最大的努力,但我没有找到你所关联的问题,哪一个当然给了我我需要的东西。 – CarlosA

回答

1

我会用data.table此:

library(data.table) 
## 
R> (df2 <- data.table(df1)[ 
    ,.(B = paste0(B, collapse = "; ")), 
    by = "A"]) 
#  A     B 
#1: USA Boston; New York 
#2:  UK Cambridge; Oxford 
#3: France    Paris 

如果你坚持有您的结果data.frame,只需使用setDF(df2)后。