r - R:根据两个条件创建一个变量
问题描述
数据如下(x 和 dummy 是引用“id”的变量):
tweet_id <- c(1,2,6,3,4,5,1,2)
X <- c(0.12426699, 0.12426699, 0.08685890, 0.08685890, 0.08685890, 0.28853901, 0.09102392, 0.09102392)
id <- c(1,1,2,2,2,3,4,4)
dummy <- c(1,1,1,1,1,0,0,0)
dt <- as.data.frame(cbind(id, X , tweet_id, dummy))
我正在寻找一个函数来创建具有以下值的列:
第1行:计算tweet_id = 1的所有X的总和,其中dummy = 1
第 2 行:计算 tweet_id = 2 的所有 X 的总和,其中 dummy = 1
第 3 行:计算 tweet_id = 6 的所有 X 的总和,其中 dummy = 1
第 4 行:计算所有 X 的总和,对于 tweet_id = 3 其中 dummy = 1
……
第 7 行:计算 tweet_id = 1 的所有 X 的总和,其中 dummy = 0
第 8 行:计算 tweet_id = 2 的所有 X 的总和,其中 dummy = 0
所以基本上在每一行,我想计算与原始推文 id 相关的东西,基于 id 特征“虚拟”的开放条件
我希望很清楚
解决方案
您可以使用库中的group_by
函数dplyr
:
library(dplyr)
dt %>% group_by(tweet_id, dummy) %>% summarise(suma = sum(X))
输出:
# A tibble: 8 x 3
# Groups: tweet_id [6]
tweet_id dummy suma
<dbl> <dbl> <dbl>
1 1 0 0.0910
2 1 1 0.124
3 2 0 0.0910
4 2 1 0.124
5 3 1 0.0869
6 4 1 0.0869
7 5 0 0.289
8 6 1 0.0869
祝你好运!
推荐阅读
- python - 如何将 PyTorch 张量更改为具有不同尺寸的一半大小和/或两倍大小?
- sql-server - 为维度实现临时表以跟踪更改
- java - MaterialCalendarView decorator overrides selected day color issue
- python - 将句子中的数字转换为python中的单词
- python - 为什么 curl 不能通过 python 工作,但在命令提示符下工作正常?
- python - 如何使用 python yaml 解析内部变量?
- android - CalendarProvider,如何知道一个事件是否被接受?
- c - 对错误的困惑:需要左值作为一元“&”操作数
- php - 在 PHP 中发送数组时出错
- docker - 如何使用 jenkin 管道重新部署 docker 映像?