首页 > 解决方案 > 为新数据框中的 A 列的每个值获取 B 列的所有值

问题描述

我有一个包含两列的数据框。我想创建一个新的数据框,其中列出了第一个数据框中第一列的每个唯一值的第二列的所有值。我不想使用数据表。

经过几次试验和错误,我想出了以下内容。我想知道是否有更简单(一步?)、更快或更优化的方法来实现这一点,因为我将在其上运行的实际数据帧非常大。

> df <- data.frame( a=c( 1, 1, 2, 2, 3 ), b=c( 6:10 ) );
> df
  a  b
1 1  6
2 1  7
3 2  8
4 2  9
5 3 10
> df2 <- data.frame( a=unique( df$a ) )
> temp <- dlply( df, .(a), function( x ) data.frame( bs=x$b ) );
> df2$bs <- lapply( temp, function( x ) x$bs )
> df2
  a   bs
1 1 6, 7
2 2 8, 9
3 3   10
> 

谢谢。

标签: rdataframe

解决方案


aggregate(b ~ a, df, paste)

  a    b
1 1 6, 7
2 2 8, 9
3 3   10

推荐阅读