R:根据其他列条件比较列中的元素?

标签 r

我想根据每个主题的第二个或第三个条件是否大于第一个条件来创建一个新的df。

示例 df:

df1 <- data.frame(subject = rep(1:5, 3),
                  condition = rep(c("first", "second", "third"), each = 5),
                  values = c(.4, .4, .4, .4, .4, .6, .6, .6, .6, .4, .6, .6, .6, .4, .4))
> df1
   subject condition values
1        1     first    0.4
2        2     first    0.4
3        3     first    0.4
4        4     first    0.4
5        5     first    0.4
6        1    second    0.6
7        2    second    0.6
8        3    second    0.6
9        4    second    0.6
10       5    second    0.4
11       1     third    0.6
12       2     third    0.6
13       3     third    0.6
14       4     third    0.4
15       5     third    0.4

生成的 df 将是这样的:

> df2
   subject condition values
1        1     first    0.4
2        2     first    0.4
3        3     first    0.4
4        4     first    0.4
6        1    second    0.6
7        2    second    0.6
8        3    second    0.6
9        4    second    0.6
11       1     third    0.6
12       2     third    0.6
13       3     third    0.6
14       4     third    0.4

此处,主题 #5 不符合标准。这是因为只有主题 #5 的值在第二个或第三个条件中不大于第一个条件。

谢谢。

最佳答案

如果第二个或第三个“值”中的任何一个大于“第一个”,我们可以按“主题”和过滤器进行分组

library(dplyr)
df1 %>% 
 group_by(subject) %>%
 filter(any(values[2:3] > first(values))) %>%
 ungroup

-输出

# A tibble: 12 × 3
   subject condition values
     <int> <chr>      <dbl>
 1       1 first        0.4
 2       2 first        0.4
 3       3 first        0.4
 4       4 first        0.4
 5       1 second       0.6
 6       2 second       0.6
 7       3 second       0.6
 8       4 second       0.6
 9       1 third        0.6
10       2 third        0.6
11       3 third        0.6
12       4 third        0.4

关于R:根据其他列条件比较列中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71629309/

相关文章:

r - 如何将简单的 data.frame 附加到 R 中的 SpatialPolygonDataFrame?

从 R 中的 data.table 中删除十六进制值

r googleVis : How to control html tooltips (positioning, 边框和背景)

r - xts 对象的 native 默认索引类是什么?

r - 如何求解和绘制 R 中的微分方程?

使用 tidyverse 删除给定特定条件的重复条目

R-我应该在哪里放置RDA文件-/R,/data,/inst/extdata?

r - 动态创建UI

r - 用于查看数据框中是否存在行的现有函数?

r sqldf 转义双引号