根据条件删除融化数据

我想删除任何行,其中valuea> = b,但我不知道如何做到这一点。

样本数据:

df <- data.frame(day = c(1, 1, 2, 2, 3, 3), var = c("a", "b", "a", "b", "a", "b"), value = c(1, 2, 3, 3, 2, 1)

输出:

  day var value
1   1   a     1
2   1   b     2
3   2   a     3
4   2   b     3
5   3   a     2
6   3   b     1

所需的输出:

  day var value
1   1   a     1
2   1   b     2
形状

这是一个data.table解决方案,可避免从长到宽:

dt <- data.table(df)
dt[,if(value[var == 'a'] >= value[var == 'b']) .SD,by = day]

编辑:我现在意识到您想要的输出不适合您的初始不等式,因此调整不等式以匹配:)

EDIT2:如果您不想在data.table中执行此操作,那么这是dplyr解决方案

df %>% group_by(day) %>% filter(value[var == 'a'] >= value[var == 'b'])

EDIT3:如果您想将NA放入其中

df %>% group_by(day) %>% mutate(value = if(value[var == 'a'] >= value[var == 'b']) as.numeric(NA) else value) 

EDIT4:注意,最后一个解决方案似乎暴露了一个错误,其中NA的处理方式很奇怪,请参见此处:为什么dplyr删除条件未满足的值?

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据条件融化多列熊猫数据框

来自分类Dev

根据条件从数据集中删除重复项

来自分类Dev

根据条件从数据框中删除列

来自分类Dev

如何根据python中的条件从数据框中删除行?

来自分类Dev

根据条件删除SQL数据库中的重复项

来自分类Dev

数据注释-根据代码中的条件删除EntityValidation

来自分类Dev

如何根据条件删除数据帧的N行

来自分类Dev

访问查询以根据复杂条件删除数据

来自分类Dev

根据R中的条件删除数据框的列

来自分类Dev

根据groupby()条件删除熊猫数据框行

来自分类Dev

Python数据框:根据某些条件删除重复项

来自分类Dev

如何根据条件从数据框中删除行

来自分类Dev

根据列条件从数据框中批量删除行

来自分类Dev

根据多个条件从数据框中删除整个ID

来自分类Dev

根据日期条件从数据框中删除记录

来自分类Dev

如何根据python中的条件从数据框中删除行?

来自分类Dev

根据多个条件删除PySpark数据框中的行

来自分类Dev

根据日期和时间条件熊猫数据帧删除行

来自分类Dev

根据条件从数据表中删除行

来自分类Dev

如何根据条件删除Pandas数据框中的列?

来自分类Dev

根据条件删除大型数据集中的重复项

来自分类Dev

根据条件删除pandas数据框中的一行

来自分类Dev

根据数据帧中的条件删除组 - pandas groupby

来自分类Dev

根据条件删除列

来自分类Dev

根据条件删除行

来自分类Dev

根据条件删除记录

来自分类Dev

根据条件删除行

来自分类Dev

根据条件删除行

来自分类Dev

根据条件搜索数据