在特定条件下使用聚合()函数和 R 聚合行,而不使用 dplyr

momo96

我想在某些条件下聚合表中的行。例如我有:

x <- data.frame("id"=c("T","T","R","R"),"value"=c(10,-5,10,-5),"level"=c(3,2,1,2))
print(x)

我的条件是:对于相同的“id”,如果负值的级别低于正值的级别,那么我可以通过求和值进行聚合。所以我得到:

x <- data.frame("id"=c("T","R","R"),"value"=c(5,10,-5))
print(x)

我可以使用 aggregate() 函数来做到这一点吗?

r.user.05apr

或者:

x <- data.frame("id"=c("T","T","R","R"),"value"=c(10,-5,10,-5),"level"=c(3,2,1,2))

lookup_vec <- setNames(x[sign(x$value) == 1, ]$level,
                       as.character(x[sign(x$value) == 1, ]$id))
x$level_plus <- lookup_vec[as.character(x$id)]
x$level_plus <- ifelse(x$level_plus >= x$level, x$level_plus, x$level)
aggregate(value ~ id + level_plus, x, sum)[c("id", "value")]
# id value
# 1  R    10
# 2  R    -5
# 3  T     5

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R如何使用data.table和dplyr在聚合中获取所需的行

来自分类Dev

使用dplyr在R中高效地聚合及时数据

来自分类Dev

如何使用dplyr在r中的不同条件下的不同组中创建新变量

来自分类Dev

如何在特定条件下查找R中的特定行或列

来自分类Dev

使用 dplyr 聚合数据

来自分类Dev

SAS:无法在特定条件下使用where或if条件。

来自分类Dev

在不使用PIVOT或条件聚合函数的情况下将行转换为列

来自分类Dev

R dplyr:分组依据,不具有聚合函数

来自分类Dev

R:根据特定条件聚合数据帧

来自分类Dev

R:在分组条件下聚合大数据帧

来自分类Dev

在dplyr中使用R公式

来自分类Dev

使用R / dplyr过滤列?

来自分类Dev

通过使用dplyR或聚合在R中分组两次来建立相关性?

来自分类Dev

使用 r dplyr 库在新列中生成聚合数字

来自分类Dev

R dplyr使用group_by的条件突变

来自分类Dev

R dplyr:使用自定义函数的行明智操作

来自分类Dev

R rbind和使用dplyr分组

来自分类Dev

使用dplyr中的c()聚合字符串汇总或聚合

来自分类Dev

通过dplyr与R中的聚合计算中位数

来自分类Dev

根据 r 中的某些条件使用 dplyr 添加特定的新行

来自分类Dev

使用dplyr等使用R操纵数据帧

来自分类Dev

R根据多个条件获取行-使用dplyr和reshape2

来自分类Dev

使用dplyr根据R中不同事件之间的条件和日期差异删除行

来自分类Dev

跨行 dplyr 的聚合值

来自分类Dev

R在purrr :: map中使用dplyr :: mutate()而不复制行

来自分类Dev

使用dplyr r更改列中的值时提取行

来自分类Dev

使用dplyr过滤R中的因子水平

来自分类Dev

R:在dplyr :: mutate()中使用min()

来自分类Dev

R Studio使用dplyr进行汇总(类似)

Related 相关文章

热门标签

归档