doesn't always do what one would expect
我知道有一个功能“ unique”,其功能与我要创建的功能相似,但是我想创建此功能。 我希望此函数最终返回“结果”,其中包含输入向量的唯一元素。 但是我不知道为什么该函数的结果与我的期望完全不同。 为什么要在结果和新的唯一元素之前合并的c无法正常工作。 请告诉我如何修正我的代码。 谢谢。
答案 0 :(得分:1)
我认为您所期望的可能类似于以下内容,其中result
应该是m_uni
的参数:
m_uni <- function(x,result = c()) {
if (class(x)=='numeric'| class(x)=='character') {
if (length(x) <= 1){
return(result)
} else {
if (x[length(x)] %in% result) {
x <- x[-length(x)]
m_uni(x,result)
} else {
result <- c(result,x[length(x)])
x <- x[-length(x)]
m_uni(x,result)
}
}
} else {
return('This function only gets numeric or character vector')
}
}
如此
> m_uni(x)
[1] 0 4 5 -2