r - 如何根据 R 中的特定参数组合行
问题描述
我有一个如下所示的数据框:
ID Smoker Asthma Age Sex COPD Event_Date
1 1 0 0 65 M 0 12-2009
2 1 0 1 65 M 0 21-2009
3 1 0 1 65 M 0 23-2009
4 2 1 0 67 M 0 19-2010
5 2 1 0 67 M 0 21-2010
6 2 1 1 67 M 1 01-2011
7 2 1 1 67 M 1 02-2011
8 3 2 1 77 F 0 09-2015
9 3 2 1 77 F 1 10-2015
10 3 2 1 77 F 1 10-2015
我想知道是否有可能将我的行组合起来以实现这样的数据集:
ID Smoker Asthma Age Sex COPD Event_Data
1 0 1 65 M 0 12-2009
2 1 1 66 M 1 19-2010
3 2 1 77 F 1 09-2015
我曾尝试使用独特的功能,但这并没有给我我想要的输出并重复多行的 ID。
这是我尝试过的代码示例
Data2<-unique(Data)
我不只是想要第一行,因为我想包括每一列的状态。例如,仅获取第一行不会包括每个 ID 在后面行中出现的 COPD 状态。
解决方案
如果你想获得每个的(第一)行,ID
你可以尝试这样的事情:
d <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L),
Smoker = c(0L, 0L, 0L, 1L, 1L, 1L, 1L, 2L, 2L, 2L),
Asthma = c(0L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L),
Age = c(65L, 65L, 65L, 67L, 67L, 67L, 67L, 77L, 77L, 77L),
Sex = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L),
.Label = c("F", "M"), class = "factor"),
COPD = c(0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L),
Event_Date = structure(c(5L, 7L, 9L, 6L, 8L, 1L, 2L, 3L, 4L, 4L),
.Label = c("01-2011", "02-2011", "09-2015",
"10-2015", "12-2009", "19-2010",
"21-2009", "21-2010", "23-2009"),
class = "factor")),
class = "data.frame",
row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"))
d[!duplicated(d$ID), ]
# ID Smoker Asthma Age Sex COPD Event_Date
# 1 1 0 0 65 M 0 12-2009
# 4 2 1 0 67 M 0 19-2010
# 8 3 2 1 77 F 0 09-2015
推荐阅读
- microsoft-graph-api - JSON 批处理不适用于某些 Microsoft Teams API
- php - 调整回头客下方的文字
- python - 网页抓取:从 javascript 链接下载 pdf
- angular - 带有意外令牌的 Angular 4 Prod 构建中的错误
- asp.net - 合并冲突 - 出现奇怪的字符
- scala - 如何在不使用 http 请求中的主机标头的情况下获取服务器名称
- sql-server - springboot中如何访问两个SQl服务器
- java - 根据 Java 环境变量中的值创建使用 @JsonIgnore 的自定义注释
- node.js - 在 async/await Express 路由器中使用 MongoDB 客户端的正确方法
- azure - 如何在 Azure 虚拟网络上限制出站连接到 URL 而不是 IP 地址?