r - 为新数据框中的 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
>
谢谢。
解决方案
aggregate(b ~ a, df, paste)
a b
1 1 6, 7
2 2 8, 9
3 3 10
推荐阅读
- php - 创建 Laravel Nova 镜头 - 不在对象上下文中使用 $this
- polly - 使用 Flurl 设置默认 Polly 策略
- c# - 使用 EWS 检索电子邮件,只需要正文中的文本
- excel - 和间接表
- javascript - 在选项输入对象中插入变量 Javascript
- tfs - 使用 VSTS Scrum 模板设置 WIP 限制?
- php - 显示表中的所有列值
- c# - 如何使用 Windows 应用程序 (C#) 动态创建用户可访问的控件(如标签、按钮 ..)
- java - 在android中运行另一个项目的代码
- html - 当我关注/不关注.username 时,密码输入会抖动