如何按以下标准保持对? (解释了我的标准)

时间:2016-09-21 03:15:45

标签: r database dplyr

在完成数据工作时,我遇到了这个问题。 数据如下,

font-family

我想通过仅使用唯一的var1和唯一的var2来进行配对。

换句话说,1~4行可以是一组,我只需要保留第1和第4列。并且,5~13行可以是另一组,我只需要保留这一对(1703 29,1704 30,1705 31)。也就是说,我希望得到这个结果

row_number      var1 var2
1               1921 16
2               1922 16
3               1921 17
4               1922 17
5               1703 29
6               1704 29
7               1705 29
8               1703 30
9               1704 30
10              1705 30
11              1703 31
12              1704 31
13              1705 31


我有更多的意见。

1 个答案:

答案 0 :(得分:1)

假设您的数据位于名为d的数据框中。然后

out <- data.frame(row_number = NA, var1 = NA, var2 = NA)
for (i in 1:nrow(d)) {
  if (!(d[i, "var1" ] %in% out[, "var1"]) & !(d[i, "var2"] %in% out[, "var2"])) {
    out <- rbind(out, d[i,])
  }
}
out <- out[-1, ]
out
#    row_number var1 var2
# 2           1 1921   16
# 4           4 1922   17
# 5           5 1703   29
# 9           9 1704   30
# 13         13 1705   31

通过遍历d行并仅提取var1var2以前未出现在输出数据框中的行来为您提供所需的结果。