【发布时间】:2015-02-13 02:17:05
【问题描述】:
最初的数据是这样的:
obs gr x1 x2 gender
1 1 0 4 M
2 1 4 13 M
3 1 13 15 M
4 1 15 15 M
5 2 0 1 F
6 2 1 15 F
7 2 15 19 F
8 2 19 30 F
9 2 30 31 F
10 3 0 2 F
11 3 2 4 F
12 3 4 7 F
13 4 0 1 M
14 4 1 14 M
15 4 14 22 M
16 4 22 31 M
17 4 31 31 M
18 4 31 60 M
19 4 60 60 M
我想让数据看起来像这样:在每个组(“gr”)中,如果 x1 和 x2 的值在任何一行中相等,则该组中的所有值都将被删除。所以新的数据应该是这样的:
obs gr x1 x2 gender
1 1 0 1 F
2 1 1 15 F
3 1 15 19 F
4 1 19 30 F
5 1 30 31 F
6 2 0 2 F
7 2 2 4 F
8 2 4 7 F
“gr”列中的数字也应该重新排列。也就是说,在这种情况下,gr 中的 2 变为 1,gr 中的 3 变为 2。
谢谢。
【问题讨论】:
-
看到你的预期结果,我很困惑。例如,obs 4 在 x1 和 x2 中有 15 个。如果我没记错的话,你不想要组 gr1 中的任何数据。是对的吗?另一件事是预期结果似乎与原始数据不匹配。我错过了什么吗?
-
嗨,爵士乐。预期结果不包含原始数据中第 1 组和第 4 组的任何值,因为在任一组中,至少有一行具有相同的 x1 和 x2 值。虽然两个数据集不匹配(组号也变了),但预期的结果正是我想要的。