首页 > 解决方案 > 有人可以在这个问题的总和部分解释他们在做什么吗

问题描述

在网上看一些问题,这就是问题

创建函数 unique,给定一个向量将返回一个新向量,其中第一个向量的元素已删除,重复元素已删除。

我查看了解决方案,这就是他们所拥有的

f.uniq <- function (v) {
  s <- c()

  for(i in 1:length(v)) {
    if(sum(v[i] == s) == 0) {
      s <- c(s, v[i])
    }
  }
  s
}
f.uniq(c(9, 9, 1, 1, 1, 0))

如果有人能解释这里发生了什么

if(sum(v[i] == s) == 0)

标签: rfunctionfor-loopvector

解决方案


sum(v[i] == s) == 0表示v[i]不在的条件s。在这里,v[i] == s产生一个与 相同维度的逻辑向量s,因此sum(v[i] == s)计算TRUE那里的 s 的数量。如果没有TRUEie,sum(v[i] == s) == 0则可以输入if语句。


推荐阅读