【发布时间】:2020-04-06 14:43:06
【问题描述】:
正在网上查看一些问题,这就是问题
创建唯一的函数,它给定一个向量将返回一个新向量,其中第一个向量的元素已删除重复元素。
我查看了解决方案,这就是他们所拥有的
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)
【问题讨论】:
-
这可能有助于将其逐个分解:
v[i] == s是做什么的?sum(v[i] == s)是做什么的?sum(v[i] == s) == 0是做什么的? -
向量 v 中位置 i 的元素出现在向量 s 中的次数。循环将向量 v 中的值一一追加到空向量 s 中,直到找到重复项
-
我了解
v[I] == s,我有点了解sum,但== 0我无法掌握 -
您只想附加向量中尚不存在的值。因此,为了附加一个数字,等于您在当前循环迭代中检查的数量值必须为 0。
标签: r function for-loop vector