r - 选择具有其他列的特定值的列的不同值
问题描述
我有以下数据集,其中 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))
推荐阅读
- powershell - 使用powershell递归更改lastwritedate
- django - 如何为 SMTP 配置 Django 和 G Suite
- html - Flexbox 调整元素宽度以不留空白
- ios - swift parse json - 无法读取数据,因为它的格式不正确
- java - 正则表达式从路径获取带或不带扩展名的文件名
- android - 为什么 CameraX 不能在 Android Studio 中将图片放大到我需要的大小?
- reactjs - 具有高阶函数的泛型
- android - 为什么我在小米设备上无法获取系统区域?
- entity-framework - 实体框架保存命令是否提交事务?
- node.js - Selenium-Webdriver:在 Chrome 中模拟触摸事件/滑动(受信任的)