从数据集中删除重复项后无法保留所有变量

时间:2015-06-30 20:43:19

标签: r variables duplicates

因此,我导入了一个包含178个观测值和8个变量的数据集。然后最终目标是消除其中三个变量(2,5和6)中相同的所有观察结果。使用unique命令证明这很容易。

mav2 <- unique(mav[,c(2,5,6)])

生成的mav2数据框产生了55个观察结果,删除了所有重复项!不幸的是,它还摆脱了我在独特命令(1,3,4,7和8)中没有使用的其他五个变量。我最初尝试添加两个数据帧,当然这不起作用,因为它们的大小不等。我也试过合并这两个,但这失败了,只给出了第一个数据集的输出,包含所有178个观测值。

第二个数据集(mav2)确实产生了一个新列(row.names),它是来自初始数据集的每个观察的行号。

如果有人能帮助我将所有8个初始变量放入只有55个独特观察的数据集中,我将非常感激。提前谢谢。

3 个答案:

答案 0 :(得分:4)

我认为你想要的是duplicated,一个类似于unique的函数,它返回重复元素的索引。

所以

mav2 <- mav[!duplicated(mav[,c(2,5,6)]),]

编辑:倒转duplicated

答案 1 :(得分:1)

你可以试试这个

mav$key <- 1:nrow(mav)
mav2 <- unique(mav[,c(2,5,6)])
mav_unique <- mav[mav$key%in%mav2$key,]
mav_unique$key <- NULL

编辑:解决关键问题

 rownames(mav) <- 1:nrow(mav) #to make sure they are correctly set
 mav2 <- unique(mav[,c(2,5,6)])
 mav_unique <- mav[rownames(mav)%in%rownames(mav2),]

答案 2 :(得分:0)

您可以尝试这样做。

@media (min-width: 992px) and (max-width: 1099px) {
    .navbar-header {
      float: none;
    }
    .navbar-toggle {
      display: block;
    }
    .navbar-collapse {
      border-top: 1px solid transparent;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
    }
    .navbar-collapse.collapse {
      display: none!important;
    }
    .navbar-nav {
      float: none!important;
      margin: 7.5px -15px;
    }
    .navbar-nav>li {
      float: none;
    }
    .navbar-nav>li>a {
      padding-top: 10px;
      padding-bottom: 10px;
    }
}

示例:

mav[!(mav$v2==mav$v5 & mav$v5==mav$v6),]

现在在上面的数据框中,列v2,v5,v6中的第2行具有相同的值6.

执行以下操作。

mav <- data.frame(v1=c(1,2,3),v2=c(2,6,4),v3=c(4,5,6),v4=c(1,5,2),v5=c(5,6,7),v6=c(5,6,8),v7=c(7,4,5),v8=c(6,3,1))

mav
  v1 v2 v3 v4 v5 v6 v7 v8
1  1  2  4  1  5  5  7  6
2  2  6  5  5  6  6  4  3
3  3  4  6  2  7  8  5  1

给你

mav <- mav[!(mav$v2==mav$v5 & mav$v5==mav$v6),]

保留所有其他列。