gpt4 book ai didi

r - 关于如何根据 R 中的条件删除行的任何想法?

转载 作者:行者123 更新时间:2023-12-04 14:43:38 25 4
gpt4 key购买 nike

我是 R 新手,我一直在使用 dplyr 包进行总结。我想不出以下问题的解决方案。

我的小标题:8 x 3 如下:

df <- tibble(id = c(1, 1, 1, 1, 1, 2, 2, 2 ),
block = c(2, 2, 2, 3, 3, 2, 2, 3),
answer = "TRUE")
<头>
id block 回答
1 2
1 2
1 2
1 3
1 3
2 2
2 2
2 3

ID -> 参与者 ID

block -> 最高正确的block

我只想保留每个参与者的最高 block 分数,但最高 block 分数定义为在每个 block 条件中至少有两个正确 (TRUE) 的最高分数。

在上面的示例中,参与者 1 的最高分 block 分数为 3,因为在 block 3 处至少有两个正确的回答。参与者 2 的最高分数是 2。请参见下面的示例。

最终的输出应该是这样的:

<头>
id block 回答
1 3
2 2

有人知道我应该如何开始吗?或者有什么包可以解决这个问题?

我设法使用 slice_tail 参数维护每个参与者的最后一行,但不知道如何从那里继续

最佳答案

filter 只保留那些具有 >= 2 TRUE 值的 block ,稍后为每个 id 保留max block 值的行。

library(dplyr)

df %>%
group_by(id, block) %>%
filter(sum(as.logical(answer)) >= 2) %>%
group_by(id) %>%
slice(which.max(block)) %>%
ungroup

# id block answer
# <dbl> <dbl> <chr>
#1 1 3 TRUE
#2 2 2 TRUE

关于r - 关于如何根据 R 中的条件删除行的任何想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69127517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com