r - 您可以根据 R 上其他数据框的行数创建一个新的数据框吗?
问题描述
我有一个 df 有 900k 行,每一行都有一个动作(总共大约 80 个不同的动作)和一个数字(总共大约 500 个不同的数字),所以它看起来像这样:
Action Number
a 1
b 3
a 7
b 3
b 1
如何使用 R 创建一个新的 df ,它使用该组合创建一个带有数字、操作和行数的新行,所以它看起来像这样:
Number Action Total
1 a 1
1 b 1
3 b 2
7 a 1
解决方案
尝试dplyr
:
library(dplyr)
#Code
newdf <- df %>% group_by(Number,Action) %>% summarise(N=n())
输出:
# A tibble: 4 x 3
# Groups: Number [3]
Number Action N
<int> <chr> <int>
1 1 a 1
2 1 b 1
3 3 b 2
4 7 a 1
或者在base R
创建指标变量N
并使用aggregate()
:
#Base R
df$N <- 1
newdf <- aggregate(N~.,data=df,sum)
输出:
Action Number N
1 a 1 1
2 b 1 1
3 b 3 2
4 a 7 1
推荐阅读
- android - 是否可以覆盖 WebRTC 连接超时?
- laravel - 我们可以在 laravel 的路由中传递 post 参数吗?
- rest - 如何在 JAX-RS 中读取从 Postman(表单数据)上传的文件?
- r - 如何根据数据框中的另一列计算一列的统计信息?
- javascript - 如何使用 JavaScript在链接的 HTMLCollection 中选择文本?
- react-native - 检查屏幕是否在 React Native 中变得模糊或聚焦?
- dataweave - Mule 4:Objectstore:无法反序列化对象
- php - PHP:shell_exec 拒绝 shell 命令的密码,但在 shell 中工作
- c# - 当 CPU 通过 IIS 高级 CPU 设置达到峰值时终止 W3WP
- python - 密集层:TypeError:init()缺少1个必需的位置参数:'units'