R使用dplyr根据一列中的最大值对数据框进行变异

莫林玛伊

我想使用ddply或group_by来基于数据框中的某一列中的值来更改现有数据框。

我有一个3列的数据框。我想找出ROI已在DF $值的最大值每个ID和条件。因此,对于以下df,对于ID 1 + Match条件,ROI 3将被称为Max,对于ID 1 + NoMatch Condition,ROI 4将被称为Max,依此类推。

set.seed(1)
df <- data.frame("ID"=sort(rep_len(1:2, 12)), "ROI"=rep_len(1:6, 12), "Condition"=rep_len(c(rep_len("Match", 3), rep_len("NoMatch", 3)), 12), "Value"=runif(12), MaxROI="None")

我尝试使用ddply和group_by的一些组合。例如:

ddply(df, c("ID", "Condition"), mutate, MaxROI[which.max(Value)]="Max")

#generates an error
#Error: unexpected '=' in "ddply(df, c("ID", "Condition"), mutate, MaxROI[which.max(Value)]="

我已经看过这里了,但是我不想过滤数据框以使行保持最大值,而是对现有df进行了变异。

谢谢,

莫林玛伊

阿克伦

我们可以使用dplyr在按“ ID”,“条件”分组之后,通过将“值”与max“值”进行比较case_when来创建列“最大” 以在其中存在最大“值”的地方创建“最大”字符串,否则默认为不适用

library(dplyr)
df %>% 
   group_by(ID, Condition) %>% 
   dplyr::mutate(Max =case_when(Value == max(Value) ~ "Max"))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据一列对数据进行分组,然后使用数据框中的值构建行

使用 case_when() 和 filter() 根据 R 中一列中的值和另一列中的级别对数据框进行子集化

R 数据框:如何根据另一列中不同值的列值对数据进行切片

根据列的值和另一列中列表的长度对数据框进行排序

如何使用python根据同一数据框中另一列的值对数据框中列中的值进行排序

根据列中的最大值对列进行排序 - R 数据框排列

Linux; 对数据进行排序并仅打印一列的最大值

从列表中的数据框创建数据框,并在R的一列中创建最大值

使用整数数据类型,根据另一列的值对数据框进行排序

根据列表对列进行排序,然后对数据框中的另一列进行排序

使用来自另一个数据框的值作为R中的变量名称来对数据框进行变异

保持与数据框中另一列的最大值相对应的值

在pyspark数据框中添加具有另一列最大值的新列

从数据框中的每一列中查找最大值

在R中:如何每天根据某一列中的最大值聚合整个行?

根据另一列中的最大值为熊猫数据框中的给定子索引创建一个新列

确定熊猫数据框中每隔一列的最大值

数据框为一列选择最大值,但输出另一列的值

使用R-根据另一个数据框的组最大值对一个数据框进行整形

在一列中基于两个值对数据框进行子集

根据一列中的值(以另一列为条件)按顺序对数据进行排序

根据两列A,B从数据框中删除重复项,并在另一列C中保留具有最大值的行

使用一组数据框中的每一列的每个单元格创建最大值的新数据框

根据R中另一个排序后的列值对数据框进行排序

列值未根据 R 中数据框中另一列的模式搜索进行更新

使用 dplyr 在过滤数据框的列中查找最大值

根据python中另一个列表的最大值对数组的列索引进行分组

如何根据 R 数据框中特定列的条件获得行式最大值?

根据另一列中的值对pandas数据框中的列进行归一化