gpt4 book ai didi

r - 选择具有其他列的特定值的列的不同值

转载 作者:行者123 更新时间:2023-12-04 00:51:25 24 4
gpt4 key购买 nike

我有以下数据集,其中 ID 有重复项,其他列是范围从 0 t0 2 的分类列。如果可用,我想选择其他列的值不为零的唯一 ID。数据如下:

 ID      X     Y     R      Z 
1 0 2 0 1
1 0 2 0 0
2 1 0 0 1
3 1 1 0 1
3 1 1 1 1
4 0 0 1 0
4 0 1 1 0
我最喜欢的结果是:
 ID      X     Y     R      Z 
1 0 2 0 1
2 1 0 0 1
3 1 1 1 1
4 0 1 1 0
我正在使用 dplyr group_by
谢谢!

最佳答案

我们可以使用带有 if/else 的条件后 group_by

library(dplyr)
df1 %>%
group_by(ID) %>%
summarise(across(everything(), ~ if(all(. == 0)) 0
else unique(.[. !=0])), .groups = 'drop')
-输出
# A tibble: 4 x 5
# ID X Y R Z
# <int> <dbl> <dbl> <dbl> <dbl>
#1 1 0 2 0 1
#2 2 1 0 0 1
#3 3 1 1 1 1
#4 4 0 1 1 0
数据
df1 <- structure(list(ID = c(1L, 1L, 2L, 3L, 3L, 4L, 4L), X = c(0L, 
0L, 1L, 1L, 1L, 0L, 0L), Y = c(2L, 2L, 0L, 1L, 1L, 0L, 1L), R = c(0L,
0L, 0L, 0L, 1L, 1L, 1L), Z = c(1L, 0L, 1L, 1L, 1L, 0L, 0L)),
class = "data.frame", row.names = c(NA,
-7L))

关于r - 选择具有其他列的特定值的列的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66216035/

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