【发布时间】:2021-12-11 02:57:31
【问题描述】:
我进行了一项调查,我的数据如下所示:
dt<-structure(list(ID = c("183577", "183577", "183907", "183907",
"184188", "184188", "184188", "184188", "184188", "185167", "185167",
"185167"), Question = c("7.6", "7.6", "7.7", "7.7", "1.1", "1.1",
"1.2", "1.2", "10.1", "7.7", "7.7", "7.7"), Answer = c("PARTIALLY",
"YES", "", "", "", "PARTIALLY", "YES", "", "", "", "YES", "PARTIALLY"
), Control = c(-2.93736019374946, 1.01801705406142, 0.0598708062395571,
-0.456635810693228, 3.04311151438148, 0.641092485370467, 0.518503165474265,
0.284680056109131, 1.98580865602238, -0.547063974950295, -0.507700003072695,
-0.194028453167317)), row.names = c(NA, -12L), class = c("data.table",
"data.frame"), index = integer(0))
dt
ID Question Answer Control
1: 183577 7.6 PARTIALLY -2.93736019
2: 183577 7.6 YES 1.01801705
3: 183907 7.7 0.05987081
4: 183907 7.7 -0.45663581
5: 184188 1.1 3.04311151
6: 184188 1.1 PARTIALLY 0.64109249
7: 184188 1.2 YES 0.51850317
8: 184188 1.2 0.28468006
9: 184188 10.1 1.98580866
10: 185167 7.7 -0.54706397
11: 185167 7.7 YES -0.50770000
12: 185167 7.7 PARTIALLY -0.19402845
在 Answer 变量中,有几个缺失值""。然而,对于其中一些问题,我有另一行包含个人的答案,其中该行具有非缺失值(例如,部分、是、否)。
我想删除所有重复的行,其中我的答案是缺失值 (Answer==""),而另一个答案是实际值。因此,例如,删除第 5 行并保留第 6 行。但是,当没有一个答案具有非缺失值时(例如第 3 行和第 4 行以及第 9 行),我想保留缺失值的观察结果。
有谁知道我如何做到这一点?
最终的数据集应该是这样的
ID Question Answer Control
1: 183577 7.6 PARTIALLY -2.93736019
2: 183577 7.6 YES 1.01801705
3: 183907 7.7 0.05987081
4: 183907 7.7 -0.45663581
5: 184188 1.1 PARTIALLY 0.64109249
6: 184188 1.2 YES 0.51850317
7: 184188 10.1 1.98580866
8: 185167 7.7 YES -0.50770000
9: 185167 7.7 PARTIALLY -0.19402845
请注意第 1 行和第 2 行的特殊情况。我有两个不同的非缺失值。因为它反映在最终数据集中,在这种情况下我也想保留这两个观察结果。
谢谢
【问题讨论】:
标签: r duplicates missing-data