如何在 R SQLDF 中聚合字符串?

How to aggregate strings in R SQLDF?

我有这样的数据集:

DEPTNO ENAME
   10 CLARK
   10 KING
   10 MILLER
   20 ADAMS
   20 FORD
   20 JONES

我正在尝试创建这样的结果:

DEPTNO AGGREGATED_ENAMES
   10 CLARK,KING,MILLER
   20 ADAMS,FORD,JONES

在 Oracle 中,这可以通过以下方式完成:

SQL> SELECT deptno
    ,LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
   FROM   emp
   GROUP  BY
   deptno;

我如何在 R 中的 SQLDF 中执行此操作?

或者如果在 R 中无法实现 SQLDF,我该如何在 R 中实现?

谢谢! 帕斯

首先,将数据加载到 data.frame 并将 stringsAsFactors 设置为 FALSE

> v1=c(10, 10,20)
> v2=c('CLARK','KING','ADAMS')

> df = data.frame(v1,v2, stringsAsFactors = FALSE)
df
  v1    v2
1 10 CLARK
2 10  KING
3 20 ADAMS

> str(df)
'data.frame':   3 obs. of  2 variables:
 $ v1: num  10 10 20
 $ v2: chr  "CLARK" "KING" "ADAMS"

接下来,在两列之间使用aggregate函数:

> aggregate(v2 ~ v1, df, c)
  v1          v2
1 10 CLARK, KING
2 20       ADAMS

像这样使用group_concat

sqldf("select DEPTNO, group_concat(ENAME) ENAMES from emp group by DEPTNO")

给予:

  DEPTNO            ENAMES
1     10 CLARK,KING,MILLER
2     20  ADAMS,FORD,JONES